[crac] RFR: PID adjustment on checkpoint [v5]

Anton Kozlov akozlov at openjdk.org
Fri Jun 23 15:58:35 UTC 2023

On Fri, 23 Jun 2023 14:59:53 GMT, Roman Marchenko <rmarchenko at openjdk.org> wrote:

>> On restore, there might be PID value conflicts because of small PID values, if it was checkpoint'ed in a container. Therefore, when checkpointing in a container, we need to move PID value for new processes to a particular value to avoid conflicts on restore.
>> See https://github.com/CRaC/example-lambda/blob/master/checkpoint.cmd.sh#L8 for example.
>> This PR contains implemented functionality similar to the example above, making this work out of the box. By default, if checkpointing, PID value for new processes starts from 128. 
>> To set a custom value, `CRAC_MIN_PID` environment variable should be used. 
>> Min `CRAC_MIN_PID` value is 1, max `CRAC_MIN_PID` is not implemented currently.
> Roman Marchenko has updated the pull request incrementally with one additional commit since the last revision:
>   Removing unnecessary test code

src/java.base/share/native/launcher/main.c line 359:

> 357:                 } else if (0 != res) {
> 358:                     errno = res;
> 359:                     perror("set_last_pid");

This apparently prints a textual version of the error. Better to avoid modifying the global state:


                    fprintf(stderr, "set_last_pid: %s\n", strerror(res))


PR Review Comment: https://git.openjdk.org/crac/pull/86#discussion_r1239984260

More information about the crac-dev mailing list