-
Notifications
You must be signed in to change notification settings - Fork 6.1k
8332105: Exploded JDK does not include CDS #19188
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
8332105: Exploded JDK does not include CDS #19188
Conversation
👋 Welcome back stuefe! A progress list of the required criteria for merging this PR into |
@tstuefe 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 9 new commits pushed to the
Please see this link for an up-to-date comparison between the source branch of this pull request and the ➡️ To integrate this PR with the above commit message to the |
@tstuefe |
Webrevs
|
Any takers? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Seems okay. This test should have had requires vm.cds
anyway.
Just out of curiosity why is CDS not compatible with an exploded build?
Isn't the exploded build supposed to be as fast as possible? I think that's why people use it, and it'd be a shame to allow anything, such as building a CDS arcive, to slow that process down. |
@dholmes-ora Thanks for the review. Honestly, I don't know. Maybe @iklam knows.
Sure, but not generating a CDS archive at build time and being unable to dump or use an archive at all are two different things. |
The exploded build has tens of thousands of class files. If any of them are modified, the CDS archive may no longer be valid. There's no quick way of checking that. That's why CDS doesn't support the exploded build (or any apps that load class files from a directory). |
Ah, thank you for exlaining. That makes sense. |
Holding this off until post RDP1 23, not that important |
…unt-as-if-CDS-had-not-been-included-in-the-build
I still see some failures which are only failing in exploded-jvm;
Did you also notice them in tier1 with exploded-build ? I only looked at
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
@offamitkumar thanks for testing. If these tests are dependent on CDS, they should have the requirement specified. @iklam thanks! /integrate |
Going to push as commit 801bf15.
Your commit was automatically rebased without conflicts. |
An exploded JDK cannot be used with either -Xshare:on or -Xshare:auto. That causes tests like runtime/CompressedOops/CompressedCPUSpecificClassSpaceReservation.java to fail when running on an exploded JDK.
Since an exploded JDK cannot use CDS, we should - for tests - treat it as if CDS had not been included.
/label hotspot
Note that I was torn between two ways to fix this:
@requires
propertyWhiteBox
andVMProps
(jdk.exploded
). See this draft PR: 8332074: Create a "jdk.exploded" test property to check if the testee jdk is exploded #19178 .The latter is cleaner and clearer, conveying the message of exploded-ness without muddling it with the CDS aspect. But OTOH the complexity may not be required.
I can go either way, though I have a slight preference for this PR, which is why I posted it.
Progress
Issue
Reviewers
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/jdk.git pull/19188/head:pull/19188
$ git checkout pull/19188
Update a local copy of the PR:
$ git checkout pull/19188
$ git pull https://git.openjdk.org/jdk.git pull/19188/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 19188
View PR using the GUI difftool:
$ git pr show -t 19188
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/jdk/pull/19188.diff
Webrev
Link to Webrev Comment