JDK-7185258 : [macOS] Deadlock in SunToolKit.realSync()
  • Type: Bug
  • Component: client-libs
  • Sub-Component: java.awt
  • Affected Version: 7u6,8,9,10,12,13,14,15
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: os_x
  • CPU: generic
  • Submitted: 2012-07-19
  • Updated: 2021-06-28
  • Resolved: 2020-04-27
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.
JDK 11 JDK 13 JDK 15 JDK 8
11.0.10-oracleFixed 13.0.7Fixed 15 b22Fixed 8u301Fixed
Related Reports
Duplicate :  
Relates :  
Description
To reproduce run regression test closed/javax/swing/DataTransfer/DefaultNoDrop/DefaultNoDrop.java 

Threads:

Reference Handler
	java.lang.Object.wait(Native Method)
	java.lang.Object.wait(Object.java:503)
	java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
Thread-4
	sun.lwawt.macosx.CDragSourceContextPeer.doDragging(Native Method)
	sun.lwawt.macosx.CDragSourceContextPeer.access$100(CDragSourceContextPeer.java:45)
	sun.lwawt.macosx.CDragSourceContextPeer$1.run(CDragSourceContextPeer.java:187)
Thread-3
	sun.lwawt.macosx.LWCToolkit.nativeSyncQueue(Native Method)
	sun.lwawt.macosx.LWCToolkit.syncNativeQueue(LWCToolkit.java:345)
	sun.awt.SunToolkit.realSync(SunToolkit.java:1569)
	sun.awt.SunToolkit.realSync(SunToolkit.java:1501)
	SwingTestHelper.waitForEDTToFinish(SwingTestHelper.java:604)
	SwingTestHelper.controlLoop(SwingTestHelper.java:575)
	SwingTestHelper.access$700(SwingTestHelper.java:173)
	SwingTestHelper$4.run(SwingTestHelper.java:497)
	java.lang.Thread.run(Thread.java:722)
MainThread
	java.lang.Object.wait(Native Method)
	java.lang.Object.wait(Object.java:503)
	SwingTestHelper.run(SwingTestHelper.java:446)
	DefaultNoDrop.main(DefaultNoDrop.java:59)
	sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	java.lang.reflect.Method.invoke(Method.java:601)
	com.sun.javatest.regtest.MainWrapper$MainThread.run(MainWrapper.java:94)
	java.lang.Thread.run(Thread.java:722)
Java2D Queue Flusher
	java.lang.Object.wait(Native Method)
	sun.java2d.opengl.OGLRenderQueue$QueueFlusher.run(OGLRenderQueue.java:208)
AWT-EventQueue-0
	sun.misc.Unsafe.park(Native Method)
	java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
	java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
	java.awt.EventQueue.getNextEvent(EventQueue.java:511)
	java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:213)
	java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
	java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
	java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
	java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
	java.awt.EventDispatchThread.run(EventDispatchThread.java:97)
AppKit Thread
	java.lang.Object.wait(Native Method)
	java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
	java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
	java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:177)
AWT-Shutdown
	java.lang.Object.wait(Native Method)
	java.lang.Object.wait(Object.java:503)
	sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:287)
	java.lang.Thread.run(Thread.java:722)
TimerQueue
	sun.misc.Unsafe.park(Native Method)
	java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:226)
	java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2082)
	java.util.concurrent.DelayQueue.take(DelayQueue.java:220)
	javax.swing.TimerQueue.run(TimerQueue.java:171)
	java.lang.Thread.run(Thread.java:722)
main
	java.lang.Object.wait(Native Method)
	java.lang.Thread.join(Thread.java:1258)
	java.lang.Thread.join(Thread.java:1332)
	com.sun.javatest.regtest.MainWrapper.main(MainWrapper.java:71)
Java2D Disposer
	java.lang.Object.wait(Native Method)
	java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
	java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
	sun.java2d.Disposer.run(Disposer.java:145)
	java.lang.Thread.run(Thread.java:722)

Comments
Fix request (13u) -- will label after testing completed. I would like to backport the fix to jdk13u for parity with jdk11u. The original patch applied quite cleanly (slight merge was needed due to year changed in copyright).
11-03-2021

Fix request (11u) -- will label after testing completed. I would like to downport this for parity with 11.0.10-oracle. Applies clean except for one Copyright.
01-09-2020

URL: https://hg.openjdk.java.net/jdk/jdk/rev/818899a48897 User: psadhukhan Date: 2020-05-02 04:34:47 +0000
02-05-2020

URL: https://hg.openjdk.java.net/jdk/client/rev/818899a48897 User: serb Date: 2020-04-27 10:28:46 +0000
27-04-2020

Pending review
16-04-2020

RULE closed/javax/swing/DataTransfer/DefaultNoDrop/DefaultNoDrop.java Exception java.lang.Thread.State: TIMED_WAITING (on object monitor) RULE closed/javax/swing/DataTransfer/DefaultNoDrop/DefaultNoDrop.java Exception java.lang.Thread.State: TIMED_WAITING (parking) RULE closed/javax/swing/DataTransfer/DefaultNoDrop/DefaultNoDrop.java Exception java.lang.Thread.State: WAITING (on object monitor) RULE closed/javax/swing/DataTransfer/DefaultNoDrop/DefaultNoDrop.java Exception java.lang.Thread.State: WAITING (parking) RULE closed/javax/swing/DataTransfer/DefaultNoDrop/DefaultNoDrop.java StatusError Program `...' timed out! RULE closed/javax/swing/DataTransfer/DefaultNoDrop/DefaultNoDrop.java Timeout none
17-06-2015

Up the bug priority to P3. The bug affects all tests that uses realSync on OS X, approximate amount is 262 regression and 115 functional, not including implicit usage (subclasses etc).
26-09-2014

Test fails also on JDK 8b91 on MacOSX
29-05-2013