RFR: 8276227: ciReplay: SIGSEGV if classfile for replay compilation is not present after JDK-8275868 [v2]
Christian Hagedorn
chagedorn at openjdk.java.net
Wed Nov 3 08:12:11 UTC 2021
On Wed, 3 Nov 2021 00:52:28 GMT, Dean Long <dlong at openjdk.org> wrote:
>> src/hotspot/share/ci/ciReplay.cpp line 890:
>>
>>> 888: // This also ensures that older replay files work.
>>> 889: _protection_domain_initialized = true;
>>> 890:
>>
>> I don't see how this helps older replay files. In fact, it seems like it could make replay for older replay files fail, if the first entry has a different protection domain than the main class.
>>
>> If we really want to preserve the old behavior of old replay files, then I think we need to add a version number or some other keyword so that we can tell if a replay file is old or not. However, in my opinion supporting old replay files should not be a goal.
>
> I'm having second thoughts on not supporting old replay files. It's easy enough to add a version number, which allows us to introduce incompatible changes without breaking old replay files. I'll probably introduce a version number with my fix for 8276095.
You're right. A version number would solve this completely. This implementation is more robust than the previous one but not complete. Here we only try to set the protection domain once where in the previous implementation, we would have picked the first non-null protection domain found (which could happen after looking at many classes). Do you want to revisit this code with the introduction of version numbers in 8276095 and we proceed with this temporary fix?
-------------
PR: https://git.openjdk.java.net/jdk/pull/6189
More information about the hotspot-compiler-dev
mailing list