[crac] RFR: 8376959: [CRaC] Turn simengine into shared library [v2]

Timofei Pushkin tpushkin at openjdk.org
Tue Feb 3 14:45:03 UTC 2026


On Tue, 3 Feb 2026 14:36:15 GMT, Radim Vansa <rvansa at openjdk.org> wrote:

>> src/hotspot/share/runtime/crac_engine.cpp line 116:
>> 
>>> 114:     assert(sizeof(SIMENGINE) <= resolved_engine_size, "must be");
>>> 115:     memcpy(resolved_engine, SIMENGINE, sizeof(SIMENGINE));
>>> 116:     log_warning(crac)("-XX:CRaCEngine=pause/pauseengine is deprecated; use -XX:CRaCEngine=simengine -XX:CRaCEngineOptions=pause=true");
>> 
>> Let's define an obsoletion/expiration version for this. I suggest 28 for both obsoletion and expiration: this way for LTS releases it will be deprecated in April 2026 and obsoleted+expired in April 2027.
>> 
>> Suggestion:
>> 
>>   assert(JDK_Version::current().compare(JDK_Version::jdk(28)) < 0, "pauseengine handling must be removed as obsolete");
>>   if (is_pauseengine()) {
>>     assert(sizeof(SIMENGINE) <= resolved_engine_size, "must be");
>>     memcpy(resolved_engine, SIMENGINE, sizeof(SIMENGINE));
>>     log_warning(crac)("Option '-XX:CRaCEngine=pauseengine' was deprecated in version 27 and will be removed in version 28. Use options '-XX:CRaCEngine=simengine -XX:CRaCEngineOptions=pause=true' instead.");
>
> April 2026 is 27, a STS version, and 28 is STS as well (not that it would matter so much in CRaC - we haven't been updating the older branches anyway). I am OK to expire this in 28, though.

I meant that in OpenJDK we will use 27 for deprecation and 28 for obsoletion, but in our downstream LTS releases we will need to pick versions with the corresponding major versions, otherwise they will never reach the deprecation/obsoletion/expiration. And for that I propose to use the versions that will be released in April 2026 and April 2027.

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

PR Review Comment: https://git.openjdk.org/crac/pull/289#discussion_r2759437441


More information about the crac-dev mailing list