Details
-
Bug
-
Resolution: Fixed
-
P2
-
7u6
-
None
-
b71
-
x86
-
windows
-
Verified
Description
During a JPRT run of the latest HotSpot 24 sources from the hotspot-rt repository, the SpecJBB run hung. The process is run in a headless environment with -Djava.awt.headless=true set. After some debugging we concluded that the process is displaying a dialog box with the following text:
---
::GetDIBits(hBMDC, hBM, 0, 1, 0, gpBitmapInfo, 0)
File '../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.cpp', at line 180
GetLastError() is 57 : The parameter is incorrect
Do you want to break into the debugger?
---
This does not happen every time we run this test, but has happened a few times before.
Here is the native stack trace of the hung thread:
awt.dll!AwtDebugSupport::AssertCallback(const char * expr, const char * file, int line) Line 187 + 0x17 bytes C++
awt.dll!DAssert_Impl(const char * msg, const char * filename, int linenumber) Line 38 + 0x12 bytes C
awt.dll!AwtWin32GraphicsDevice::Initialize() Line 180 + 0x35 bytes C++
awt.dll!Devices::UpdateInstance(JNIEnv_ * env) Line 216 C++
awt.dll!initScreens(JNIEnv_ * env) Line 39 + 0x9 bytes C++
awt.dll!Java_sun_awt_Win32GraphicsEnvironment_initDisplay(JNIEnv_ * env, _jclass * thisClass) Line 148 + 0x9 bytes C++
And the Java stack:
"main" prio=6 tid=0x00aff000 nid=0xd8c runnable [0x0047e000]
java.lang.Thread.State: RUNNABLE
JavaThread state: _thread_in_native
Thread: 0x00aff000 [0xd8c] State: _at_safepoint _has_called_back 0 _at_poll_safepoint 0
JavaThread state: _thread_in_native
at sun.awt.Win32GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.Win32GraphicsEnvironment.initDisplayWrapper(Win32GraphicsEnvironment.java:85)
at sun.awt.Win32GraphicsEnvironment.<clinit>(Win32GraphicsEnvironment.java:68)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at java.awt.GraphicsEnvironment.createGE(GraphicsEnvironment.java:102)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:81)
- locked <0x38421538> (a java.lang.Class for java.awt.GraphicsEnvironment)
at java.awt.image.BufferedImage.createGraphics(BufferedImage.java:1152)
at java.awt.image.BufferedImage.getGraphics(BufferedImage.java:1142)
at spec.reporter.GraphImage.init(GraphImage.java:110)
at spec.reporter.GraphImage.<init>(GraphImage.java:106)
at spec.reporter.Metrics.JasonGraph(Metrics.java:469)
at spec.reporter.Metrics.tableAndGraph(Metrics.java:968)
at spec.reporter.Report.<init>(Report.java:129)
at spec.jbb.JBBmain.main(JBBmain.java:1066)
It looks like hBM is NULL.
The version of the JDK and HotSpot was:
java version "1.7.0_06-ea-fastdebug"
Java(TM) SE Runtime Environment (build 1.7.0_06-ea-fastdebug-b16)
Java HotSpot(TM) Client VM (build 24.0-b15-internal-201206280223.cphillim.rt-merge-to-hotspo-fastdebug, mixed mode, sharing)
I have attached a minidump (java.dmp) from the hung process as well as the awt.pdb file.
---
::GetDIBits(hBMDC, hBM, 0, 1, 0, gpBitmapInfo, 0)
File '../../../src/windows/native/sun/windows/awt_Win32GraphicsDevice.cpp', at line 180
GetLastError() is 57 : The parameter is incorrect
Do you want to break into the debugger?
---
This does not happen every time we run this test, but has happened a few times before.
Here is the native stack trace of the hung thread:
awt.dll!AwtDebugSupport::AssertCallback(const char * expr, const char * file, int line) Line 187 + 0x17 bytes C++
awt.dll!DAssert_Impl(const char * msg, const char * filename, int linenumber) Line 38 + 0x12 bytes C
awt.dll!AwtWin32GraphicsDevice::Initialize() Line 180 + 0x35 bytes C++
awt.dll!Devices::UpdateInstance(JNIEnv_ * env) Line 216 C++
awt.dll!initScreens(JNIEnv_ * env) Line 39 + 0x9 bytes C++
awt.dll!Java_sun_awt_Win32GraphicsEnvironment_initDisplay(JNIEnv_ * env, _jclass * thisClass) Line 148 + 0x9 bytes C++
And the Java stack:
"main" prio=6 tid=0x00aff000 nid=0xd8c runnable [0x0047e000]
java.lang.Thread.State: RUNNABLE
JavaThread state: _thread_in_native
Thread: 0x00aff000 [0xd8c] State: _at_safepoint _has_called_back 0 _at_poll_safepoint 0
JavaThread state: _thread_in_native
at sun.awt.Win32GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.Win32GraphicsEnvironment.initDisplayWrapper(Win32GraphicsEnvironment.java:85)
at sun.awt.Win32GraphicsEnvironment.<clinit>(Win32GraphicsEnvironment.java:68)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:186)
at java.awt.GraphicsEnvironment.createGE(GraphicsEnvironment.java:102)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:81)
- locked <0x38421538> (a java.lang.Class for java.awt.GraphicsEnvironment)
at java.awt.image.BufferedImage.createGraphics(BufferedImage.java:1152)
at java.awt.image.BufferedImage.getGraphics(BufferedImage.java:1142)
at spec.reporter.GraphImage.init(GraphImage.java:110)
at spec.reporter.GraphImage.<init>(GraphImage.java:106)
at spec.reporter.Metrics.JasonGraph(Metrics.java:469)
at spec.reporter.Metrics.tableAndGraph(Metrics.java:968)
at spec.reporter.Report.<init>(Report.java:129)
at spec.jbb.JBBmain.main(JBBmain.java:1066)
It looks like hBM is NULL.
The version of the JDK and HotSpot was:
java version "1.7.0_06-ea-fastdebug"
Java(TM) SE Runtime Environment (build 1.7.0_06-ea-fastdebug-b16)
Java HotSpot(TM) Client VM (build 24.0-b15-internal-201206280223.cphillim.rt-merge-to-hotspo-fastdebug, mixed mode, sharing)
I have attached a minidump (java.dmp) from the hung process as well as the awt.pdb file.