[crac] RFR: 8378446: [CRaC] Replace libcrexec with libcriuengine [v4]

Timofei Pushkin tpushkin at openjdk.org
Fri Feb 27 09:34:15 UTC 2026


On Fri, 27 Feb 2026 09:22:31 GMT, Radim Vansa <rvansa at openjdk.org> wrote:

>> After [JDK-8376959](https://bugs.openjdk.org/browse/JDK-8376959) the only use of libcrexec is running CRIU; in fact the code already is quite CRIU-dependent. The point of this task is to stop pretending that libcrexec is generic, and move code from criuengine binary (now removed) into libcriuengine implementing the C/R API.
>> 
>> This removes smuggling of some parameters through environment variables and execution of the criuengine. We still require anexecuteable (now called `criuhelper`) to become parent of the restored process, but this has significantly simplified implementation.
>> 
>> Replacement of communication between the restoring and restored process through signals and temporary files is out of scope of this change.
>
> Radim Vansa has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Mostly stylistic changes

Marked as reviewed by tpushkin (Committer).

src/java.base/linux/native/libcriuengine/criuengine.cpp line 133:

> 131:   ArgsBuilder() {
> 132:     memset(_args, 0, sizeof(_args));
> 133:   }

I was thinking of just `const char* _args[32] = {};` but this has the same effect

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

PR Review: https://git.openjdk.org/crac/pull/297#pullrequestreview-3865911846
PR Review Comment: https://git.openjdk.org/crac/pull/297#discussion_r2863391332


More information about the crac-dev mailing list