-
Bug
-
Resolution: Fixed
-
P4
-
9
-
b64
-
x86
-
windows
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8082592 | emb-9 | Thomas Stuefe | P4 | Resolved | Fixed | team |
JDK-8326424 | openjdk8u412 | Frederic Thevenet | P4 | Resolved | Fixed | b05 |
When creating a VM on Windows, there is no __try/__except handler around CreateJavaVM.
As a result, crashes in the VM initialization may not be caught and just terminate the VM without error log. A second effect is that SafeFetch32() does not work on 32bit Windows during initialization.
Note that there still are protected areas of code, which explains why this error is seldom noticable:
- test functions which may crash are called with "os::win32::call_test_func_with_wrapper()", which catches structured exceptions
- on 64bit, dynamically generated code runs with SEH protection because we register SEH handlers for code areas: os::register_code_area(). This explains why SafeFetch32 on 64bit windows works and on 32bit windows crashes.
Note that once this is fixed, some places which now use CALL_TEST_FUNC_WITH_WRAPPER_IF_NEEDED or os::win32::call_test_func_with_wrapper() can probably be simplified.
As a result, crashes in the VM initialization may not be caught and just terminate the VM without error log. A second effect is that SafeFetch32() does not work on 32bit Windows during initialization.
Note that there still are protected areas of code, which explains why this error is seldom noticable:
- test functions which may crash are called with "os::win32::call_test_func_with_wrapper()", which catches structured exceptions
- on 64bit, dynamically generated code runs with SEH protection because we register SEH handlers for code areas: os::register_code_area(). This explains why SafeFetch32 on 64bit windows works and on 32bit windows crashes.
Note that once this is fixed, some places which now use CALL_TEST_FUNC_WITH_WRAPPER_IF_NEEDED or os::win32::call_test_func_with_wrapper() can probably be simplified.
- backported by
-
JDK-8082592 Structured Exception Catcher missing around CreateJavaVM on Windows
- Resolved
-
JDK-8326424 Structured Exception Catcher missing around CreateJavaVM on Windows
- Resolved
- relates to
-
JDK-8186199 [windows] JNI_DestroyJavaVM not covered by SEH
- Resolved
-
JDK-8185734 [Windows] Structured Exception Catcher missing around gtest execution
- Resolved
(1 links to)