Dev engines are confusing for the end-user in a number of ways:
1. simengine prints "SIM_CRAC_NEW_ARGS_ID=<PID of the parent JVM>" on restore (and exits). It could better write something like “You are using a simulated CRaC engine which does not support restoration from a different process“ end exit with an error.
2. pauseengine on checkpoint could write something like “This process has been paused, use another JVM as a restoring one to unpause it“ and on restore in could write “Unpausing process <PID of the paused process>“ to give the user an idea of what is happening.
3. pauseengine is built and bundled on all platforms that CRaC supports but it is only fully implemented on Linux — on MacOS and Windows it is basically equivalent to simengine. For now we can make it Linux-only and implement it on other platforms if the need arises.
1. simengine prints "SIM_CRAC_NEW_ARGS_ID=<PID of the parent JVM>" on restore (and exits). It could better write something like “You are using a simulated CRaC engine which does not support restoration from a different process“ end exit with an error.
2. pauseengine on checkpoint could write something like “This process has been paused, use another JVM as a restoring one to unpause it“ and on restore in could write “Unpausing process <PID of the paused process>“ to give the user an idea of what is happening.
3. pauseengine is built and bundled on all platforms that CRaC supports but it is only fully implemented on Linux — on MacOS and Windows it is basically equivalent to simengine. For now we can make it Linux-only and implement it on other platforms if the need arises.
- links to
-
Review(crac) openjdk/crac/239