8377512: AOT cache creation fails with invalid native pointer#428
8377512: AOT cache creation fails with invalid native pointer#428antonvoznia wants to merge 4 commits intoopenjdk:masterfrom
Conversation
Backport-of: 00c1f4b6248e116c8839b1fb19ce20182711667a
|
👋 Welcome back antonvoznia! A progress list of the required criteria for merging this PR into |
|
❗ This change is not yet ready to be integrated. |
|
This backport pull request has now been updated with issue from the original commit. |
Webrevs
|
| return true; | ||
| } else { | ||
| return false; | ||
| } |
There was a problem hiding this comment.
By removing this, does it disable all AOT-resolution of invokehandle bytecodes?
You can try with a test like this:
import java.lang.invoke.*;
public class HelloMH {
public static void main(String ...args) throws Throwable {
MethodHandles.Lookup lookup = MethodHandles.lookup();
MethodType mt = MethodType.methodType(void.class, float.class);
MethodHandle mh = lookup.findStatic(HelloMH.class, "callme", mt);
HelloMHCaller.call(mh);
}
private static void callme(float x) {
System.out.println("Hello MH.invoke: " + x);
Thread.dumpStack();
}
}
class HelloMHCaller {
static void call(MethodHandle mh) throws Throwable {
mh.invokeExact(4.0f);
}
}
and see if the invokehandle bytecode in HelloMHCaller::call is AOT-resolved or reverted.
iklam
left a comment
There was a problem hiding this comment.
Looks good, but I have one question about one of the changes.
It's not clean backport:
Removed
rejection_reason = "(not dumping method handles)";rejection_reason = "(not dumping intrinsic method handles)";JDK 25 doesn't use the rejection_reason, it requires another backport .
Function
ConstantPoolCache::can_archive_resolved_method(ConstantPool* src_cp, ResolvedMethodEntry* method_entry)was a bit re-implemented, because the original fix uses logic based on "8334898: Resolve static field/method references at CDS dump time" changes within this function.Testing:
Reproducer.
tests
test/hotspot/jtreg/runtime/cds/appcds/aotCache/Without fix
Test results: passed: 11; failed: 5; error: 1
With fix
Test results: passed: 15; failed: 1; error: 1
OpenJDK GHA Sanity Checks
Progress
Issue
Reviewing
Using
gitCheckout this PR locally:
$ git fetch https://git.openjdk.org/jdk25u-dev.git pull/428/head:pull/428$ git checkout pull/428Update a local copy of the PR:
$ git checkout pull/428$ git pull https://git.openjdk.org/jdk25u-dev.git pull/428/headUsing Skara CLI tools
Checkout this PR locally:
$ git pr checkout 428View PR using the GUI difftool:
$ git pr show -t 428Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk25u-dev/pull/428.diff
Using Webrev
Link to Webrev Comment