[jdk16] RFR: 8259275: JRuby crashes while resolving invokedynamic instruction [v4]
David Holmes
dholmes at openjdk.java.net
Tue Jan 12 08:30:04 UTC 2021
On Tue, 12 Jan 2021 06:35:26 GMT, Calvin Cheung <ccheung at openjdk.org> wrote:
>> Please review this proposed change which fixes 2 problems during CDS dump time:
>>
>> - in `ClassListParser::resolve_indy()`, exception could be thrown from `bootstrap_specifier.resolve_bsm()` but was not handled;
>> - in `ConstantPool::remove_unshareable_info()`, tag was not setup correctly on error conditions.
>>
>> Passed tiers 1 - 4 testing.
>
> Calvin Cheung has updated the pull request incrementally with one additional commit since the last revision:
>
> update per comments from David H.
I missed the fact some of this code was just being moved around when I took the first look, so my comments could be seen as something suitable for a follow up RFE.
This is not a full review.
Thanks,
David
src/hotspot/share/classfile/classListParser.cpp line 488:
> 486: CLEAR_PENDING_EXCEPTION;
> 487: } else {
> 488: exit(1);
We should never just use `exit()` - at a minimum `vm_exit()`. But we should not silently exit with no indication of what went wrong. I'm not sure of the call chain here but can't we just return and let higher layers do the same until we eventually hit a cleaner exit path that reports the exception?
Edit: I see now that this code was moved from another location not introduced with this fix, but this still seems wrong to me.
-------------
PR: https://git.openjdk.java.net/jdk16/pull/104
More information about the hotspot-runtime-dev
mailing list