JDK-5030154 : RAS : Tiger reliability testsuite(SwingBasher) hangs in LinuxAS
  • Type: Bug
  • Component: client-libs
  • Sub-Component: javax.swing
  • Affected Version: 5.0
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: linux_redhat_3.0,windows_xp
  • CPU: x86
  • Submitted: 2004-04-12
  • Updated: 2004-07-13
  • Resolved: 2004-07-13
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
5.0 b58Fixed
Related Reports
Relates :  
Description
RedHat Linux Advance Server3.0 and Quick Silver(JDS) system hangs within 24hrs approaximately after 50th loop when running tiger reliability testsuite(SwingBasher with new tiger features) for 72hrs.

Reliability Testsuite : 
--------------------------
Find attached with this bug.


JAVA VERSION :
---------------
java full version "1.5.0-beta2-b43" 


HARDWARE INFO :
----------------
Intel(R) Pentium(R) 4 CPU 2.66GHz
cpu MHz         : 2660.218
cache size      : 512 KB


OS : Linux, Ver. 2.4.21-4.EL (RedHat Advance Server 3.0)


Steps to reproduce:
--------------------
1. Set JAVA_HOME to b43/b44
2. Set SB_TIMELIMIT to 4320 (72 Hours i.e.)
3. sh runnit.sh


Error Log :
-----------
Find complete results attached with this bug.Unable to generate a thread dump.


###@###.### 2004-04-12

sorry, forgot to attach the results file. Now it is done.

###@###.### 2004-04-12

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: tiger-rc FIXED IN: tiger-rc INTEGRATED IN: tiger-b58 tiger-rc
17-09-2004

EVALUATION I reproduced this with QuickSilver b10c and Tiger b46 on a 256M machine. I ran it over night and when I came in the next day, the CPU was pegged with kswapd using 95%. System memory and swap were both full. I think the "hang" is just a side effect on Linux of us using up all of the memory. The root cause is probably the same as 5030149. Judging by the report, the test made it to the 13th iteration. I noticed that there are 14 java processes on the machine running SwingBasher - the iterations of SwingBasher are not quitting. Is this normal? I'll have to check that - it certainly chews up the memory on the machine, though. ###@###.### 2004-04-13 The 14 java processes are normal - SwingBasher uses 14 threads, which are of course full processes under Linux. The fact that the test made it to 13 iterations was just a coincidence. ###@###.### 2004-04-13 The fix for 4836639 cuts down on a lot of wasted memory. I reran this with a ws containing that fix, and I didn't get the hang. I suggest retesting this after 4836639 has been integrated. ###@###.### 2004-04-15 This is still reproducible, even with the 4836639 fix. =( I've noticed that the gnome-settings-daemon process is consuming a LOT of memory - 130M+, that's twice what the java process is consuming, and about half the memory on the system. I don't yet know what's going on with that. ###@###.### 2004-05-12 Finally some progress. The gnome-settings-daemon grows in memory when Robot is used to press and release keys. These methods were changed for bug 4817479 by adding calls to disable key repeat in the XKB X extension: ... + XkbChangeEnabledControls(robotDisplay, XkbUseCoreKbd, XkbRepeatKeysMask, 0); ... + XkbChangeEnabledControls(robotDisplay, XkbUseCoreKbd, XkbRepeatKeysMask, 1); ... How this results in additional memory usage by gnome-settings-daemon I don't yet understand. We aren't allocating anything for these calls, so my first thought is a bug somewhere in X/XKB/GNOME. One work around for 4817479 is to disable the XKB extension by adding the line: Option "XkbDisable" to the Keyboard section of the XF86Config file. I'm going to ask that the submitter restest with this configuration change. ###@###.### 2004-05-25 The submitter was successful in using the XKB workaround, though AWT would prefer to backout the 4817479 fix altogether. There is also a new problem. SwingBasher terminates consistently on Linux AS3.0 with the following stack trace: Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at javax.swing.plaf.basic.BasicPopupMenuUI$MouseGrabber.stateChanged(BasicPopupMenuUI.java:717) at javax.swing.MenuSelectionManager.fireStateChanged(MenuSelectionManager.java:167) at javax.swing.MenuSelectionManager.setSelectedPath(MenuSelectionManager.java:93) at javax.swing.MenuSelectionManager.clearSelectedPath(MenuSelectionManager.java:115) at javax.swing.plaf.basic.BasicComboPopup.hide(BasicComboPopup.java:203) at javax.swing.plaf.basic.BasicComboBoxUI.setPopupVisible(BasicComboBoxUI.java:825) at javax.swing.JComboBox.setPopupVisible(JComboBox.java:790) at javax.swing.plaf.basic.BasicComboBoxUI$Actions.actionPerformed(BasicComboBoxUI.java:1298) at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1571) at javax.swing.JComponent.processKeyBinding(JComponent.java:2726) at javax.swing.JComponent.processKeyBindings(JComponent.java:2772) at javax.swing.JComponent.processKeyEvent(JComponent.java:2689) at javax.swing.JComboBox.processKeyEvent(JComboBox.java:1354) at java.awt.Component.processEvent(Component.java:5242) at java.awt.Container.processEvent(Container.java:1961) at java.awt.Component.dispatchEventImpl(Component.java:3933) at java.awt.Container.dispatchEventImpl(Container.java:2019) at java.awt.Component.dispatchEvent(Component.java:3781) at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1810) at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:668) at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:916) at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:794) at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:632) at java.awt.Component.dispatchEventImpl(Component.java:3819) at java.awt.Container.dispatchEventImpl(Container.java:2019) at java.awt.Component.dispatchEvent(Component.java:3781) at java.awt.EventQueue.dispatchEvent(EventQueue.java:463) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:234) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149) at java.awt.EventDispatchThread.run(EventDispatchThread.java:110) Exception in thread "main" java.lang.NullPointerException at javax.swing.plaf.basic.BasicPopupMenuUI$MouseGrabber.grabWindow(BasicPopupMenuUI.java:682) at javax.swing.plaf.basic.BasicPopupMenuUI$MouseGrabber.<init>(BasicPopupMenuUI.java:663) at javax.swing.plaf.basic.BasicPopupMenuUI.installListeners(BasicPopupMenuUI.java:96) at javax.swing.plaf.synth.SynthPopupMenuUI.installListeners(SynthPopupMenuUI.java:84) at javax.swing.plaf.basic.BasicPopupMenuUI.installUI(BasicPopupMenuUI.java:67) at javax.swing.JPopupMenu.setInvoker(JPopupMenu.java:912) at javax.swing.JMenu.ensurePopupMenuCreated(JMenu.java:516) at javax.swing.JMenu.add(JMenu.java:550) at javax.swing.JMenu.add(JMenu.java:602) at ContextPopupMenu.createSubMenu(ContextPopupMenu.java:74) at ContextPopupMenu.createSubMenu(ContextPopupMenu.java:70) at ContextPopupMenu.createPopupMenu(ContextPopupMenu.java:88) at ContextPopupMenu.<init>(ContextPopupMenu.java:105) at JComboBoxTest.runTest(JComboBoxTest.java:126) at SwingMarkPanel.runTests(SwingMarkPanel.java:120) at SwingBasher.runTest(SwingBasher.java:347) at SwingBasher.start(SwingBasher.java:285) at SwingBasher.main(SwingBasher.java:106) This is due to a threading problem in SwingBasher itself. The ContextPopupMenu test modifies the GUI, but is always run on the main thread. It needs to be run on the Event Dispatch Thread. The submitter confirmed that not running the ContextPopupMenu test allows SwingBasher to run for the requisite 72 hours. ###@###.### 2004-06-21
21-06-2004

WORK AROUND Disable the XKB extension by adding the line: Option "XkbDisable" to the Keyboard section of the XF86Config file. ###@###.### 2004-05-25
25-05-2004