Overwriting a compressed checkpoint with an uncompressed checkpoint produces a non-bootable image.
~/work/jruby $ rm -rf .jruby.checkpoint/
~/work/jruby $ jruby --checkpoint -J-XX:+CRaCImageCompression
Sep 05, 2024 4:14:54 AM jdk.internal.crac.LoggerContainer info
INFO: Starting checkpoint
Sep 05, 2024 4:14:54 AM jdk.internal.crac.LoggerContainer info
INFO: /home/headius/work/jruby/lib/jruby.jar is recorded as always available on restore
CR: Checkpoint ...
Killed
~/work/jruby $ jruby --restore -e "puts 'hello'"
hello
~/work/jruby $ jruby --checkpoint
Sep 05, 2024 4:15:25 AM jdk.internal.crac.LoggerContainer info
INFO: Starting checkpoint
Sep 05, 2024 4:15:25 AM jdk.internal.crac.LoggerContainer info
INFO: /home/headius/work/jruby/lib/jruby.jar is recorded as always available on restore
CR: Checkpoint ...
Killed
~/work/jruby $ jruby --restore -e "puts 'hello'"
pie: 398386: Error (criu/pie/util-vdso.c:92): vdso: ELF header magic mismatch
pie: 398386: Error (criu/pie/restorer.c:2194): Restorer fail 398386
Error (criu/cr-restore.c:2605): Restoring FAILED.
~/work/jruby $ rm -rf .jruby.checkpoint/
~/work/jruby $ jruby --checkpoint -J-XX:+CRaCImageCompression
Sep 05, 2024 4:14:54 AM jdk.internal.crac.LoggerContainer info
INFO: Starting checkpoint
Sep 05, 2024 4:14:54 AM jdk.internal.crac.LoggerContainer info
INFO: /home/headius/work/jruby/lib/jruby.jar is recorded as always available on restore
CR: Checkpoint ...
Killed
~/work/jruby $ jruby --restore -e "puts 'hello'"
hello
~/work/jruby $ jruby --checkpoint
Sep 05, 2024 4:15:25 AM jdk.internal.crac.LoggerContainer info
INFO: Starting checkpoint
Sep 05, 2024 4:15:25 AM jdk.internal.crac.LoggerContainer info
INFO: /home/headius/work/jruby/lib/jruby.jar is recorded as always available on restore
CR: Checkpoint ...
Killed
~/work/jruby $ jruby --restore -e "puts 'hello'"
pie: 398386: Error (criu/pie/util-vdso.c:92): vdso: ELF header magic mismatch
pie: 398386: Error (criu/pie/restorer.c:2194): Restorer fail 398386
Error (criu/cr-restore.c:2605): Restoring FAILED.