[crac] RFR: Print better diagnostics for spawning CRIU

Jan Kratochvil jkratochvil at openjdk.org
Fri Aug 4 06:28:57 UTC 2023

On Wed, 2 Aug 2023 17:15:17 GMT, Anton Kozlov <akozlov at openjdk.org> wrote:

>> It was always a mystery why it does not work this time as there are no error messages printed.
>> Still may system call errors are currently not reported but those errors at least do not happen commonly.
>> In fact `os::exec_child_process_and_wait` should be more verbose but that is already a part of OpenJDK so I did not modify it.
>> It would be much easier if `criuengine.c` was in C++. I was considering to switch it but then I wrote it already in C.
>> I understand this code will become obsolete after planned integration of CRIU into JVM but it may not yet be soon enough.
> src/java.base/unix/native/criuengine/criuengine.c line 101:
>> 99:     char *retval;
>> 100:     if (path2[0] == '/') {
>> 101:         retval = strdup(path2);
> path_join apparently uses path1 only if path2 is relative, otherwise just returns path2. It's unclear from the function name. This looks more like
> static char *path_from(const char *cwd, const char *path) {
>   // compute abs path to `path`  with the workdir `cwd` assumed
> }

The function name corresponds to: https://docs.python.org/3/library/os.path.html#os.path.join

> If a segment is an absolute path, then all previous segments are ignored and joining continues from the absolute path segment.

The function first parameter is not always used for `cwd`.


PR Review Comment: https://git.openjdk.org/crac/pull/97#discussion_r1284032585

More information about the crac-dev mailing list