Bug#787955: Backtrace for OpenJDK8 deadlocks with GTK UIs.
Hi, The workaround from https://bugs.debian.org/798131 seems to work for me: Edit /etc/java-8-openjdk/accessibility.properties and comment (add # to) the GNOME Atk Wrapper line: assistive_technologies=org.GNOME.Accessibility.AtkWrapper Regards, Erich On Tue, Sep 22, 2015 at 5:41 PM, Erich Schubert wrote: > As you can see, the deadlock is somewhere in GTK native code: > > "AWT-EventQueue-1" #17 prio=6 os_prio=0 tid=0x7f53a85d9800 > nid=0x6e1e runnable [0x7f5376d98000] >java.lang.Thread.State: RUNNABLE > at com.sun.java.swing.plaf.gtk.GTKStyle.nativeGetClassValue(Native Method) > at > com.sun.java.swing.plaf.gtk.GTKStyle.getClassSpecificValue(GTKStyle.java:603) > - locked <0x0005ca601d88> (a java.lang.Object) > at > com.sun.java.swing.plaf.gtk.GTKStyle.getClassSpecificIntValue(GTKStyle.java:620) > at com.sun.java.swing.plaf.gtk.GTKStyle.get(GTKStyle.java:791) > at > javax.swing.plaf.synth.SynthArrowButton$SynthArrowButtonUI.getPreferredSize(SynthArrowButton.java:106) > at javax.swing.JComponent.getPreferredSize(JComponent.java:1662) > at > javax.swing.plaf.basic.BasicScrollBarUI.layoutVScrollbar(BasicScrollBarUI.java:662) > at > javax.swing.plaf.basic.BasicScrollBarUI.layoutContainer(BasicScrollBarUI.java:866) > at > javax.swing.plaf.basic.BasicScrollBarUI$ModelListener.stateChanged(BasicScrollBarUI.java:1054) > at > javax.swing.DefaultBoundedRangeModel.fireStateChanged(DefaultBoundedRangeModel.java:364) > at > javax.swing.DefaultBoundedRangeModel.setRangeProperties(DefaultBoundedRangeModel.java:302) > at javax.swing.JScrollBar.setValues(JScrollBar.java:623) > at > javax.swing.plaf.basic.BasicScrollPaneUI.syncScrollPaneWithViewport(BasicScrollPaneUI.java:285) > at > javax.swing.plaf.basic.BasicScrollPaneUI$Handler.stateChanged(BasicScrollPaneUI.java:1039) > at javax.swing.JViewport.fireStateChanged(JViewport.java:1369) > at javax.swing.JViewport.setViewSize(JViewport.java:1021) > at javax.swing.ViewportLayout.layoutContainer(ViewportLayout.java:201) > at java.awt.Container.layout(Container.java:1510) > at java.awt.Container.doLayout(Container.java:1499) > at java.awt.Container.validateTree(Container.java:1695) > at java.awt.Container.validateTree(Container.java:1704) > at java.awt.Container.validate(Container.java:1630) > - locked <0x0005ca6018a0> (a java.awt.Component$AWTTreeLock) > at javax.swing.JViewport.validateView(JViewport.java:482) > at javax.swing.JViewport.scrollRectToVisible(JViewport.java:393) > at javax.swing.JComponent.scrollRectToVisible(JComponent.java:3111) > at javax.swing.JTable.changeSelection(JTable.java:2467) > at > javax.swing.plaf.basic.BasicTableUI$Handler.adjustSelection(BasicTableUI.java:1115) > at > javax.swing.plaf.basic.BasicTableUI$Handler.mousePressed(BasicTableUI.java:1038) > at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:280) > at java.awt.Component.processMouseEvent(Component.java:6532) > at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) > at java.awt.Component.processEvent(Component.java:6300) > at java.awt.Container.processEvent(Container.java:2236) > at java.awt.Component.dispatchEventImpl(Component.java:4891) > at java.awt.Container.dispatchEventImpl(Container.java:2294) > at java.awt.Component.dispatchEvent(Component.java:4713) > at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888) > at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4522) > at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466) > at java.awt.Container.dispatchEventImpl(Container.java:2280) > at java.awt.Window.dispatchEventImpl(Window.java:2750) > at java.awt.Component.dispatchEvent(Component.java:4713) > at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) > at java.awt.EventQueue.access$500(EventQueue.java:97) > at java.awt.EventQueue$3.run(EventQueue.java:709) > at java.awt.EventQueue$3.run(EventQueue.java:703) > at java.security.AccessController.doPrivileged(Native Method) > at > java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) > at > java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) > at java.awt.EventQueue$4.run(EventQueue.java:731) > at java.awt.EventQueue$4.run(EventQueue.java:729) > at java.security.AccessController.doPrivileged(Native Method) > at > java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) > at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) > at org.GNOME.Accessibility.AtkWrapper$5.dispatchEvent(AtkWrapper.java:697) > at > java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) > at > java.awt.EventDispatchThread.pumpEv
Bug#787955: Backtrace for OpenJDK8 deadlocks with GTK UIs.
As you can see, the deadlock is somewhere in GTK native code: "AWT-EventQueue-1" #17 prio=6 os_prio=0 tid=0x7f53a85d9800 nid=0x6e1e runnable [0x7f5376d98000] java.lang.Thread.State: RUNNABLE at com.sun.java.swing.plaf.gtk.GTKStyle.nativeGetClassValue(Native Method) at com.sun.java.swing.plaf.gtk.GTKStyle.getClassSpecificValue(GTKStyle.java:603) - locked <0x0005ca601d88> (a java.lang.Object) at com.sun.java.swing.plaf.gtk.GTKStyle.getClassSpecificIntValue(GTKStyle.java:620) at com.sun.java.swing.plaf.gtk.GTKStyle.get(GTKStyle.java:791) at javax.swing.plaf.synth.SynthArrowButton$SynthArrowButtonUI.getPreferredSize(SynthArrowButton.java:106) at javax.swing.JComponent.getPreferredSize(JComponent.java:1662) at javax.swing.plaf.basic.BasicScrollBarUI.layoutVScrollbar(BasicScrollBarUI.java:662) at javax.swing.plaf.basic.BasicScrollBarUI.layoutContainer(BasicScrollBarUI.java:866) at javax.swing.plaf.basic.BasicScrollBarUI$ModelListener.stateChanged(BasicScrollBarUI.java:1054) at javax.swing.DefaultBoundedRangeModel.fireStateChanged(DefaultBoundedRangeModel.java:364) at javax.swing.DefaultBoundedRangeModel.setRangeProperties(DefaultBoundedRangeModel.java:302) at javax.swing.JScrollBar.setValues(JScrollBar.java:623) at javax.swing.plaf.basic.BasicScrollPaneUI.syncScrollPaneWithViewport(BasicScrollPaneUI.java:285) at javax.swing.plaf.basic.BasicScrollPaneUI$Handler.stateChanged(BasicScrollPaneUI.java:1039) at javax.swing.JViewport.fireStateChanged(JViewport.java:1369) at javax.swing.JViewport.setViewSize(JViewport.java:1021) at javax.swing.ViewportLayout.layoutContainer(ViewportLayout.java:201) at java.awt.Container.layout(Container.java:1510) at java.awt.Container.doLayout(Container.java:1499) at java.awt.Container.validateTree(Container.java:1695) at java.awt.Container.validateTree(Container.java:1704) at java.awt.Container.validate(Container.java:1630) - locked <0x0005ca6018a0> (a java.awt.Component$AWTTreeLock) at javax.swing.JViewport.validateView(JViewport.java:482) at javax.swing.JViewport.scrollRectToVisible(JViewport.java:393) at javax.swing.JComponent.scrollRectToVisible(JComponent.java:3111) at javax.swing.JTable.changeSelection(JTable.java:2467) at javax.swing.plaf.basic.BasicTableUI$Handler.adjustSelection(BasicTableUI.java:1115) at javax.swing.plaf.basic.BasicTableUI$Handler.mousePressed(BasicTableUI.java:1038) at java.awt.AWTEventMulticaster.mousePressed(AWTEventMulticaster.java:280) at java.awt.Component.processMouseEvent(Component.java:6532) at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) at java.awt.Component.processEvent(Component.java:6300) at java.awt.Container.processEvent(Container.java:2236) at java.awt.Component.dispatchEventImpl(Component.java:4891) at java.awt.Container.dispatchEventImpl(Container.java:2294) at java.awt.Component.dispatchEvent(Component.java:4713) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4522) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466) at java.awt.Container.dispatchEventImpl(Container.java:2280) at java.awt.Window.dispatchEventImpl(Window.java:2750) at java.awt.Component.dispatchEvent(Component.java:4713) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) at java.awt.EventQueue.access$500(EventQueue.java:97) at java.awt.EventQueue$3.run(EventQueue.java:709) at java.awt.EventQueue$3.run(EventQueue.java:703) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) at java.awt.EventQueue$4.run(EventQueue.java:731) at java.awt.EventQueue$4.run(EventQueue.java:729) at java.security.AccessController.doPrivileged(Native Method) at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) at org.GNOME.Accessibility.AtkWrapper$5.dispatchEvent(AtkWrapper.java:697) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) There is a second thread waiting for the AWTTreeLock: "Thread-1" #21 prio=5 os_prio=0 tid=0x7f5304007000 nid=0