-
Notifications
You must be signed in to change notification settings - Fork 40
8354679: [CRaC] jdk.crac.management makes JdkManagementCheckSince fail #225
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: crac
Are you sure you want to change the base?
Conversation
👋 Welcome back tpushkin! A progress list of the required criteria for merging this PR into |
@TimPushkin This change now passes all automated pre-integration checks. ℹ️ This project also has non-automated pre-integration requirements. Please see the file CONTRIBUTING.md for details. After integration, the commit message for the final commit will be:
You can use pull request commands such as /summary, /contributor and /issue to adjust it as needed. At the time when this comment was updated there had been no new commits pushed to the As you do not have Committer status in this project an existing Committer must agree to sponsor your change. Possible candidates are the reviewers of this PR (@rvansa) but any other Committer may sponsor as well. ➡️ To flag this PR as ready for integration with the above commit message, type |
I think that it's OK to add the symbols to 24 only; CRaC versioning can be considered orthogonal to upstream JDK versioning. At this stage we keep backward compatibility for users' convenience, not as a rule. Testing API compatibility is useful as CRaC'ed JDK should be 100% usable as a drop-in replacement for upstream JDKs. If Last but not least; please outline the steps (can be just a comment on this PR) what will we have to do when we rebase on top of JDK 26. |
Filed the
Whenever we merge an update of the symbols from the mainline (can happen multiple times between a rampdown and the respective GA) we'll need to first overwrite our symbols with the incoming changes and then run Whenever we add a method to the public CRaC Java API we also need to run the script to update the symbols. I also found JDK-8345212, which we don't yet have in this fork. It should allow us to continue using |
OK, I thought that we could somehow preserve the oldest CRaC JDK version where the symbol appeared. But we don't need to change the taglet on too many places, so let's use this as is.
That sounds useful, but we don't need to merge changes out-of-band, this PR is good as it is. Let's integrate this and use the |
Symbols are fixed after GA so after GA they'll be preserved. But between rampdown and GA we'll need to be updating them (only the version that has not yet been GA-ed) when they are updated upstream. Example for JDK 26:
I was proposing to wait until that change gets merged-in. I believe we need to decide now: we either merge this PR and start generating CRaC symbols from now on or wait for the |
Oh, actually, I believe we are still merging 25 updates that occurred before 24 GA, so we'll go through the steps 2 and 3 above even for 24's symbols. |
Fixes the failing test, for simplicity pretending that both
jdk.crac
andjdk.management/jdk.crac.management
were added in JDK 24 and before that there was no CRaC in the JDK. Otherwise we would need to retroactively generate symbols for JDKs 17–23 which is a decent amount of work (there are no public CRaC builds for some of these versions).JDK 24 symbols were updated this way:
make/scripts/generate-symbol-data.sh
.Also adds the since-checking tests to CI.
I initially wanted to also add a since-checking test for
jdk.crac
module butSinceChecker
seems to have a bug which makes the test fail with “module: jdk.crac:@since
version is 24 but the element exists before JDK 10”. I believe this is aSinceChecker
bug because the same happens for other modules added after JDK 9 without a legacy preview, e.g.jdk.graal.compiler
.Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/crac.git pull/225/head:pull/225
$ git checkout pull/225
Update a local copy of the PR:
$ git checkout pull/225
$ git pull https://git.openjdk.org/crac.git pull/225/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 225
View PR using the GUI difftool:
$ git pr show -t 225
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/crac/pull/225.diff
Using Webrev
Link to Webrev Comment