[crac] RFR: Merge jdk:jdk-27+5 [v2]

Radim Vansa rvansa at openjdk.org
Mon Feb 2 15:09:20 UTC 2026


On Thu, 29 Jan 2026 09:00:10 GMT, Timofei Pushkin <tpushkin at openjdk.org> wrote:

>> Merge of mainline up to tag `jdk-27+5`.
>> 
>> Output of `git show --remerge-diff`: https://gist.github.com/TimPushkin/08b5f317377b4f3be0d13a83600af362
>> 
>> Major conflicts/changes:
>> - Removed a bunch of expired VM options
>> - Removed uses of `IgnoreCPUFeatures` as it becomes obsoleted with 27
>> - Sorted includes with `test/hotspot/jtreg/sources/SortIncludes.java` because there's now a test checking the include order in CI
>> - Replaced `snprintf` with `os::snprintf` because the use of the former now fails the build (it is marked deprecated)
>> - Moved code that cleans heap before checkpoint because of changes in GCs: [JDK-8368740](https://bugs.openjdk.org/browse/JDK-8368740) (Serial), [JDK-8338977](https://bugs.openjdk.org/browse/JDK-8338977) (Parallel), [JDK-8238687](https://bugs.openjdk.org/browse/JDK-8238687) (G1)
>> - Handled the new `HYBRID` CPU feature as not GLIBC-tunable — not sure if it is indeed not tunable (don't know how to check reliably)
>> - Rewrote CPU features to string conversions to use `stringStream` because of [JDK-8364128](https://bugs.openjdk.org/browse/JDK-8364128)
>> - Deferred initialization of `JDKFileResource.CLASSPATH_ENTRIES` until checkpoint: having it static changed the order of static initializations during VM startup from what is in the mainline in a way that class loading from CDS-archived JDK modules broke. When starting from a CDS archive, `ArchivedClassLoaders` and `BuiltinClassLoader` have a circular static-init dependency, and in CRaC the order was "wrong". I'd say that this is a CDS bug but it seems easier for us to apply this workaround, plus it improves performance when C/R is not used.
>> - Separated Docker code from `CracBuilder` into `CracContainerBuilder`: because of https://github.com/openjdk/jdk/pull/28557#issuecomment-3597274354 all tests that use `DockerTestUtils` now require `@modules java.base/jdk.internal.platform`, so all CRaC tests that use `CracContainerBuilder` now require it
>
> Timofei Pushkin has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Fixups

Marked as reviewed by rvansa (Committer).

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

PR Review: https://git.openjdk.org/crac/pull/288#pullrequestreview-3740038831


More information about the crac-dev mailing list