Re: AWT Dev [9] Review request for 8129116: Deadlock with multimonitor fullscreen windows.
The fix looks good to me. Thanks, Alexandr. On 6/18/2015 5:10 PM, Sergey Bylokhov wrote: Hi, Alexander. The fix looks fine to me. On 18.06.15 16:47, Alexander Zvegintsev wrote: Hello please review the fix http://cr.openjdk.java.net/~azvegint/jdk/9/8129116/00/ for the issue https://bugs.openjdk.java.net/browse/JDK-8129116 This deadlock occurs when we setting a fullscreen window on each graphics device sequentially without a delay. EventQueue.invokeAndWait(() - { for (GraphicsDevice device : devices) { device.setFullScreenWindow(new Frame()); } }); It happens even for non-exclusive fullscreen mode too (before the JDK-8051617[0] fix). Currently we are dispatching events in XToolkit under the awtLock. The fix simply releases this acquired awtLock to avoid deadlock. However we have a couple of issues ([1], [2]) with similar fixes. This repetitive pattern doesn't look good to me, so I created JDK-8129119 [3] to consider releasing awtLock upon dispatchEvent call in XToolkit. [0] https://bugs.openjdk.java.net/browse/JDK-8051617 Fullscreen mode is not working properly on Xorg [1] https://bugs.openjdk.java.net/browse/JDK-7158311 GraphicsDevice.setDisplayMode(...) leads to hang when DISPLAY variable points to Oracle Linux [2] https://bugs.openjdk.java.net/browse/JDK-7155963 Deadlock in SystemFlavorMap.getFlavorsForNative and SunToolkit.awtLock [3] https://bugs.openjdk.java.net/browse/JDK-8129119 Consider reducing the time while the AWTLock is held -- Thanks, Alexander. -- Best regards, Sergey.
AWT Dev [9] Review request for 8129116: Deadlock with multimonitor fullscreen windows.
Hello please review the fix http://cr.openjdk.java.net/~azvegint/jdk/9/8129116/00/ for the issue https://bugs.openjdk.java.net/browse/JDK-8129116 This deadlock occurs when we setting a fullscreen window on each graphics device sequentially without a delay. EventQueue.invokeAndWait(() - { for (GraphicsDevice device : devices) { device.setFullScreenWindow(new Frame()); } }); It happens even for non-exclusive fullscreen mode too (before the JDK-8051617[0] fix). Currently we are dispatching events in XToolkit under the awtLock. The fix simply releases this acquired awtLock to avoid deadlock. However we have a couple of issues ([1], [2]) with similar fixes. This repetitive pattern doesn't look good to me, so I created JDK-8129119 [3] to consider releasing awtLock upon dispatchEvent call in XToolkit. [0] https://bugs.openjdk.java.net/browse/JDK-8051617 Fullscreen mode is not working properly on Xorg [1] https://bugs.openjdk.java.net/browse/JDK-7158311 GraphicsDevice.setDisplayMode(...) leads to hang when DISPLAY variable points to Oracle Linux [2] https://bugs.openjdk.java.net/browse/JDK-7155963 Deadlock in SystemFlavorMap.getFlavorsForNative and SunToolkit.awtLock [3] https://bugs.openjdk.java.net/browse/JDK-8129119 Consider reducing the time while the AWTLock is held -- Thanks, Alexander.
Re: AWT Dev [9] Review request for 8129116: Deadlock with multimonitor fullscreen windows.
Hi, Alexander. The fix looks fine to me. On 18.06.15 16:47, Alexander Zvegintsev wrote: Hello please review the fix http://cr.openjdk.java.net/~azvegint/jdk/9/8129116/00/ for the issue https://bugs.openjdk.java.net/browse/JDK-8129116 This deadlock occurs when we setting a fullscreen window on each graphics device sequentially without a delay. EventQueue.invokeAndWait(() - { for (GraphicsDevice device : devices) { device.setFullScreenWindow(new Frame()); } }); It happens even for non-exclusive fullscreen mode too (before the JDK-8051617[0] fix). Currently we are dispatching events in XToolkit under the awtLock. The fix simply releases this acquired awtLock to avoid deadlock. However we have a couple of issues ([1], [2]) with similar fixes. This repetitive pattern doesn't look good to me, so I created JDK-8129119 [3] to consider releasing awtLock upon dispatchEvent call in XToolkit. [0] https://bugs.openjdk.java.net/browse/JDK-8051617 Fullscreen mode is not working properly on Xorg [1] https://bugs.openjdk.java.net/browse/JDK-7158311 GraphicsDevice.setDisplayMode(...) leads to hang when DISPLAY variable points to Oracle Linux [2] https://bugs.openjdk.java.net/browse/JDK-7155963 Deadlock in SystemFlavorMap.getFlavorsForNative and SunToolkit.awtLock [3] https://bugs.openjdk.java.net/browse/JDK-8129119 Consider reducing the time while the AWTLock is held -- Thanks, Alexander. -- Best regards, Sergey.