-
Bug
-
Resolution: Unresolved
-
P3
-
17.0.12, 21.0.4, 22.0.2, 23
ADDITIONAL SYSTEM INFORMATION :
Host: Windows 10 , 64 bit Build 19041 (10.0.19041.4842)
Virtualization using VMware
JRE version: OpenJDK Runtime Environment Corretto-17.0.12.7.1 (17.0.12+7) (build 17.0.12+7-LTS)
Java VM: OpenJDK 64-Bit Server VM Corretto-17.0.12.7.1 (17.0.12+7-LTS, mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64)
A DESCRIPTION OF THE PROBLEM :
A partner has notified us, that our application has started to crash randomly on their systems after we have upgraded from Java 17.0.11 to Java 17.0.12.
We got several he_err files and each one showed the same cause, a EXCEPTION_ACCESS_VIOLATION while processing an AWT displayChanged event:
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [awt.dll+0xdbb46]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j sun.awt.Win32GraphicsDevice.initNativeScale(I)V+0 java.desktop@17.0.12
j sun.awt.Win32GraphicsDevice.initScaleFactors()V+60 java.desktop@17.0.12
j sun.awt.Win32GraphicsDevice.displayChanged()V+16 java.desktop@17.0.12
j sun.awt.Win32GraphicsEnvironment.displayChanged()V+271 java.desktop@17.0.12
j sun.awt.windows.WToolkit.lambda$displayChanged$4()V+15 java.desktop@17.0.12
j sun.awt.windows.WToolkit$$Lambda$1673+0x0000000100b53200.run()V+0 java.desktop@17.0.12
j java.awt.event.InvocationEvent.dispatch()V+47 java.desktop@17.0.12
j java.awt.EventQueue.dispatchEventImpl(Ljava/awt/AWTEvent;Ljava/lang/Object;)V+21 java.desktop@17.0.12
j java.awt.EventQueue$4.run()Ljava/lang/Void;+32 java.desktop@17.0.12
j java.awt.EventQueue$4.run()Ljava/lang/Object;+1 java.desktop@17.0.12
J 997 c1 java.security.AccessController.executePrivileged(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;Ljava/lang/Class;)Ljava/lang/Object; java.base@17.0.12 (65 bytes) @ 0x000001fd279da1b4 [0x000001fd279da060+0x0000000000000154]
j java.security.AccessController.doPrivileged(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;+13 java.base@17.0.12
j java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;Ljava/security/AccessControlContext;)Ljava/lang/Object;+18 java.base@17.0.12
j java.awt.EventQueue.dispatchEvent(Ljava/awt/AWTEvent;)V+46 java.desktop@17.0.12
j java.awt.EventDispatchThread.pumpOneEventForFilters(I)V+78 java.desktop@17.0.12
j java.awt.EventDispatchThread.pumpEventsForFilter(ILjava/awt/Conditional;Ljava/awt/EventFilter;)V+35 java.desktop@17.0.12
j java.awt.EventDispatchThread.pumpEventsForHierarchy(ILjava/awt/Conditional;Ljava/awt/Component;)V+11 java.desktop@17.0.12
j java.awt.EventDispatchThread.pumpEvents(ILjava/awt/Conditional;)V+4 java.desktop@17.0.12
j java.awt.EventDispatchThread.pumpEvents(Ljava/awt/Conditional;)V+3 java.desktop@17.0.12
j java.awt.EventDispatchThread.run()V+9 java.desktop@17.0.12
v ~StubRoutines::call_stub
siginfo: EXCEPTION_ACCESS_VIOLATION (0xc0000005), reading address 0x0000000000131da5
We guess that this bug was introduced by the recent changes to the awt native code: https://github.com/openjdk/jdk17u-dev/commit/1ae82df76e9242037c2552ef40f5f11261a77914#diff-e7a4bf4f83a64bc542ee8561b592d639dd8e6d31c05ee990d33bfbb283f12f31
Our partner runs the application in a virtualized Windows instance using VMware. They've informed us that there is no specific action that triggers the bug. But after several hours of running the JRE crashes. We assume that the JRE doesn't handle the displays of the virtual machine correctly. We were not able to reproduce this issue on a non-virtualized installation.
We also received an error.log with several "java.awt.AWTError: no screen devices" exceptions:
Exception in thread "AWT-EventQueue-0" java.awt.AWTError: no screen devices
at java.desktop/sun.awt.Win32GraphicsEnvironment.getDefaultScreenDevice(Win32GraphicsEnvironment.java:101)
at java.desktop/sun.awt.windows.WWindowPeer.updateGC(WWindowPeer.java:582)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:747)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:744)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
After downgrading to 17.0.11 the issue vanished, but this is of course not a sustainable solution.
REGRESSION : Last worked in version 17
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Run a desktop Java application with Java 17.0.12 on VMware Windows machine.
CUSTOMER SUBMITTED WORKAROUND :
Downgrade to Java 17.0.11
FREQUENCY : often
Host: Windows 10 , 64 bit Build 19041 (10.0.19041.4842)
Virtualization using VMware
JRE version: OpenJDK Runtime Environment Corretto-17.0.12.7.1 (17.0.12+7) (build 17.0.12+7-LTS)
Java VM: OpenJDK 64-Bit Server VM Corretto-17.0.12.7.1 (17.0.12+7-LTS, mixed mode, tiered, compressed oops, compressed class ptrs, g1 gc, windows-amd64)
A DESCRIPTION OF THE PROBLEM :
A partner has notified us, that our application has started to crash randomly on their systems after we have upgraded from Java 17.0.11 to Java 17.0.12.
We got several he_err files and each one showed the same cause, a EXCEPTION_ACCESS_VIOLATION while processing an AWT displayChanged event:
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C [awt.dll+0xdbb46]
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j sun.awt.Win32GraphicsDevice.initNativeScale(I)V+0 java.desktop@17.0.12
j sun.awt.Win32GraphicsDevice.initScaleFactors()V+60 java.desktop@17.0.12
j sun.awt.Win32GraphicsDevice.displayChanged()V+16 java.desktop@17.0.12
j sun.awt.Win32GraphicsEnvironment.displayChanged()V+271 java.desktop@17.0.12
j sun.awt.windows.WToolkit.lambda$displayChanged$4()V+15 java.desktop@17.0.12
j sun.awt.windows.WToolkit$$Lambda$1673+0x0000000100b53200.run()V+0 java.desktop@17.0.12
j java.awt.event.InvocationEvent.dispatch()V+47 java.desktop@17.0.12
j java.awt.EventQueue.dispatchEventImpl(Ljava/awt/AWTEvent;Ljava/lang/Object;)V+21 java.desktop@17.0.12
j java.awt.EventQueue$4.run()Ljava/lang/Void;+32 java.desktop@17.0.12
j java.awt.EventQueue$4.run()Ljava/lang/Object;+1 java.desktop@17.0.12
J 997 c1 java.security.AccessController.executePrivileged(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;Ljava/lang/Class;)Ljava/lang/Object; java.base@17.0.12 (65 bytes) @ 0x000001fd279da1b4 [0x000001fd279da060+0x0000000000000154]
j java.security.AccessController.doPrivileged(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;+13 java.base@17.0.12
j java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Ljava/security/PrivilegedAction;Ljava/security/AccessControlContext;Ljava/security/AccessControlContext;)Ljava/lang/Object;+18 java.base@17.0.12
j java.awt.EventQueue.dispatchEvent(Ljava/awt/AWTEvent;)V+46 java.desktop@17.0.12
j java.awt.EventDispatchThread.pumpOneEventForFilters(I)V+78 java.desktop@17.0.12
j java.awt.EventDispatchThread.pumpEventsForFilter(ILjava/awt/Conditional;Ljava/awt/EventFilter;)V+35 java.desktop@17.0.12
j java.awt.EventDispatchThread.pumpEventsForHierarchy(ILjava/awt/Conditional;Ljava/awt/Component;)V+11 java.desktop@17.0.12
j java.awt.EventDispatchThread.pumpEvents(ILjava/awt/Conditional;)V+4 java.desktop@17.0.12
j java.awt.EventDispatchThread.pumpEvents(Ljava/awt/Conditional;)V+3 java.desktop@17.0.12
j java.awt.EventDispatchThread.run()V+9 java.desktop@17.0.12
v ~StubRoutines::call_stub
siginfo: EXCEPTION_ACCESS_VIOLATION (0xc0000005), reading address 0x0000000000131da5
We guess that this bug was introduced by the recent changes to the awt native code: https://github.com/openjdk/jdk17u-dev/commit/1ae82df76e9242037c2552ef40f5f11261a77914#diff-e7a4bf4f83a64bc542ee8561b592d639dd8e6d31c05ee990d33bfbb283f12f31
Our partner runs the application in a virtualized Windows instance using VMware. They've informed us that there is no specific action that triggers the bug. But after several hours of running the JRE crashes. We assume that the JRE doesn't handle the displays of the virtual machine correctly. We were not able to reproduce this issue on a non-virtualized installation.
We also received an error.log with several "java.awt.AWTError: no screen devices" exceptions:
Exception in thread "AWT-EventQueue-0" java.awt.AWTError: no screen devices
at java.desktop/sun.awt.Win32GraphicsEnvironment.getDefaultScreenDevice(Win32GraphicsEnvironment.java:101)
at java.desktop/sun.awt.windows.WWindowPeer.updateGC(WWindowPeer.java:582)
at java.desktop/java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:318)
at java.desktop/java.awt.EventQueue.dispatchEventImpl(EventQueue.java:773)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:720)
at java.desktop/java.awt.EventQueue$4.run(EventQueue.java:714)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:97)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:747)
at java.desktop/java.awt.EventQueue$5.run(EventQueue.java:745)
at java.base/java.security.AccessController.doPrivileged(AccessController.java:399)
at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.desktop/java.awt.EventQueue.dispatchEvent(EventQueue.java:744)
at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:203)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:124)
at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:113)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:109)
at java.desktop/java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.desktop/java.awt.EventDispatchThread.run(EventDispatchThread.java:90)
After downgrading to 17.0.11 the issue vanished, but this is of course not a sustainable solution.
REGRESSION : Last worked in version 17
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Run a desktop Java application with Java 17.0.12 on VMware Windows machine.
CUSTOMER SUBMITTED WORKAROUND :
Downgrade to Java 17.0.11
FREQUENCY : often
- relates to
-
JDK-8185862 AWT Assertion Failure in ::GetDIBits(hBMDC, hBM, 0, 1, 0, gpBitmapInfo, 0) 'awt_Win32GraphicsDevice.cpp', at line 185
- Resolved