RFR: 8308764: Reporting errors from create_vm may crash
Coleen Phillimore
coleenp at openjdk.org
Thu Jun 1 15:21:11 UTC 2023
On Thu, 1 Jun 2023 15:10:00 GMT, Coleen Phillimore <coleenp at openjdk.org> wrote:
>> There are more details in the bug report but the basic fix is to not delete the main_thread so that it is available to report the exception that caused VM initialization to fail. Added some additional comments too.
>>
>> Testing:
>> - basic fault injection to test non-exception exit paths both before and after Universe:;is_fully_initialized() which exercises the failing use of JavaThread::current()
>> - tiers 1-3 sanity testing
>>
>> Thanks.
>
> src/hotspot/share/runtime/threads.cpp line 552:
>
>> 550: if (status != JNI_OK) {
>> 551: // Don't delete main_thread here as we may need to report exceptions.
>> 552: *canTryAgain = false; // don't let caller call JNI_CreateJavaVM again
>
> So could the jni code try to create a vm, fail and then go on to do other stuff? Would this then be a memory leak?
maybe this should be a if (!HAS_PENDING_EXCEPTION) main_thread->smr_delete(); and then in the caller will exit with vm_exit_during_initialization() which does exit() so not necessary to delete the main thread.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/14238#discussion_r1213318367
More information about the hotspot-runtime-dev
mailing list