United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-5084813 stack size assertion failure in hotspot\src\os\win32\vm\os_win32.cpp:2410
JDK-5084813 : stack size assertion failure in hotspot\src\os\win32\vm\os_win32.cpp:2410

Details
Type:
Bug
Submit Date:
2004-08-10
Status:
Closed
Updated Date:
2012-10-08
Project Name:
JDK
Resolved Date:
2004-09-20
Component:
hotspot
OS:
windows_2000
Sub-Component:
runtime
CPU:
x86
Priority:
P2
Resolution:
Fixed
Affected Versions:
1.4.2_05
Fixed Versions:
1.4.2_07 (b01)

Related Reports

Sub Tasks

Description
The customer application uses 1.4.2_05 on WIndows 32 Bit. The application crashes.
It produces the following assertion failure when applying the full debug VM.

To suppress the following error report, specify this argument

 # after -XX: or in .hotspotrc:  SuppressErrorAt=/hotspot\src\os\win32\vm\os_win32.cpp:2410
 #
 # HotSpot Virtual Machine Error, assertion failure
 # Please report this error at
 # http://java.sun.com/cgi-bin/bugreport.cgi
 #
 # Java VM: Java HotSpot(TM) Server VM (1.4.2_05-b04-debug mixed mode)
 #
 # assert(_default_stack_size == nt_hdrs.OptionalHeader.SizeOfStackReserve, "stack size mismatch - os::current_stack_size() vs. executable headers")
 #
 # Error ID: D:/BUILD_AREA/jdk142-update/ws/fcs/hotspot\src\os\win32\vm\os_win32.cpp, 2410
 # 

The interesting fact is that the application does not take the suppress statement provided by a .hotspotrc file or by -XX

                                    

Comments
EVALUATION

After talking to Stefan on the phone I have a better understanding of what the
customers environment is.

This is only happening with debug vm, but preventing the debug vm from being
used to help debug another problem.

They are launching the vm from a native app, jlaunch.exe. They are unhappy about
the fact that the main thread launching the vm has its stack size set from the
executable and they cannot alter it ( as this later becomes a java thread ), see
bug 4689797. So they do not call JNI_CreateJavaVM from the initial thread but 
from another with a differnet stack size.

Here's what is happening:
 1) run jLaunch.exe, initial stack size X (taken from executable)
 2) create thread T, stack size Y ( taken from -Xss parameter)
 3) from thread T, call JNI_CreateJavaVM
 4) assert

After looking at this more closely I do not see a problem with removing this assert in the case of is_nt(). If not premanently at least for a one off 
debug build so that we can debug the real issue.

###@###.### 2004-08-11
=========================================

remove assert permanently in 1.4.2_07

###@###.### 2004-08-13
                                     
2004-08-11
CONVERTED DATA

BugTraq+ Release Management Values

COMMIT TO FIX:
1.4.2_07

FIXED IN:
1.4.2_07

INTEGRATED IN:
1.4.2_07


                                     
2004-10-02



Hardware and Software, Engineered to Work Together