On Fri, 15 Nov 2024 15:30:05 GMT, Coleen Phillimore <cole...@openjdk.org> wrote:

>> This change adds a couple of comments, removes some ancient bootstrapping 
>> code, and adds an old test that we call the verifier for redefining a class, 
>> even one in the bootclass path.
>> 
>> The fix for always verifying redefined classes was actually pushed with 
>> JDK-8341094, where the verifier code respected the parameter 
>> "should_verify_class".  By default this parameter follows the -Xverify 
>> setting.  For redefinition, this is passed as true.   The rest of the fix 
>> removes the special bootstrap loader cases that may have failed early on in 
>> the JDK development with -Xverify:all but now no longer do.  If someone 
>> tries to redefine these classes, they should also do the verification on the 
>> redefined bytecodes.
>> 
>> Tested with tier1-4.
>
> Coleen Phillimore has updated the pull request incrementally with one 
> additional commit since the last revision:
> 
>   Reduce test, fix bug in verifier, move and add comments to 
> is_eligible_for_verification.

Thanks for explaining how the main fix was done elsewhere.

A couple of comments below but changes seem okay.

Thanks

src/hotspot/share/oops/method.cpp line 339:

> 337: int Method::validate_bci(int bci) const {
> 338:   // Called from the verifier, and should return -1 if not valid.
> 339:   return ((is_native() && bci == 0) || (!is_native() && 0 <= bci && bci 
> < code_size())) ? bci : -1;

This expansion seems more correct, but it also seems unrelated to the main 
changes.

test/hotspot/jtreg/serviceability/jvmti/RedefineClasses/RedefineVerifyError.java
 line 96:

> 94:             throw new RuntimeException("This should throw VerifyError");
> 95:         } catch (VerifyError e) {
> 96:             // JVMTI recreates the VerifyError so the verification 
> message is lost.

I'm not clear why JVMTI would mess with the `VerifyError` that the verifier 
should have raised, and which explains the reason why verification failed. Not 
that your changes impact that.

-------------

Marked as reviewed by dholmes (Reviewer).

PR Review: https://git.openjdk.org/jdk/pull/22116#pullrequestreview-2447281814
PR Review Comment: https://git.openjdk.org/jdk/pull/22116#discussion_r1849463768
PR Review Comment: https://git.openjdk.org/jdk/pull/22116#discussion_r1849460625

Reply via email to