Good day community. I tried to run my application from checkpoint in Windows WSL2 Ubuntu 20.04 and this worked well. But in Docker with the same Ubuntu and Zulu JDK version it fails.
Dockerfile
FROM ubuntu:20.04
COPY zulu21.tar.gz /opt/
RUN tar -xzf /opt/zulu21.tar.gz -C /opt
ENV JAVA_HOME /opt/zulu21.32.17-ca-crac-jdk21.0.2-linux_x64
ENV PATH $JAVA_HOME/bin:$PATH
RUN chown root:root $JAVA_HOME/lib/criu
RUN chmod u+s $JAVA_HOME/lib/criu
...
docker run --privileged {image_name}
Errors
2024-01-26 15:10:26 An exception during a checkpoint operation:
2024-01-26 15:10:26 jdk.internal.crac.mirror.CheckpointException
2024-01-26 15:10:26 Suppressed: jdk.internal.crac.mirror.impl.CheckpointOpenResourceException: FD fd=17 type=unknown path=anon_inode:[eventpoll]
2024-01-26 15:10:26 at java.base/jdk.internal.crac.mirror.Core.translateJVMExceptions(Core.java:117)
2024-01-26 15:10:26 at java.base/jdk.internal.crac.mirror.Core.checkpointRestore1(Core.java:188)
2024-01-26 15:10:26 at java.base/jdk.internal.crac.mirror.Core.checkpointRestore(Core.java:286)
2024-01-26 15:10:26 at java.base/jdk.internal.crac.mirror.Core.checkpointRestoreInternal(Core.java:299)
2024-01-26 15:10:26 Suppressed: jdk.internal.crac.mirror.impl.CheckpointOpenResourceException: FD fd=18 type=unknown path=anon_inode:[eventfd]
2024-01-26 15:10:26 at java.base/jdk.internal.crac.mirror.Core.translateJVMExceptions(Core.java:117)
2024-01-26 15:10:26 at java.base/jdk.internal.crac.mirror.Core.checkpointRestore1(Core.java:188)
2024-01-26 15:10:26 at java.base/jdk.internal.crac.mirror.Core.checkpointRestore(Core.java:286)
2024-01-26 15:10:26 at java.base/jdk.internal.crac.mirror.Core.checkpointRestoreInternal(Core.java:299)
2024-01-26 15:10:26 Suppressed: jdk.internal.crac.mirror.impl.CheckpointOpenResourceException: FD fd=19 type=unknown path=anon_inode:[timerfd]
2024-01-26 15:10:26 at java.base/jdk.internal.crac.mirror.Core.translateJVMExceptions(Core.java:117)
2024-01-26 15:10:26 at java.base/jdk.internal.crac.mirror.Core.checkpointRestore1(Core.java:188)
2024-01-26 15:10:26 at java.base/jdk.internal.crac.mirror.Core.checkpointRestore(Core.java:286)
2024-01-26 15:10:26 at java.base/jdk.internal.crac.mirror.Core.checkpointRestoreInternal(Core.java:299)
2024-01-26 15:10:26 Suppressed: jdk.internal.crac.mirror.impl.CheckpointOpenResourceException: FD fd=20 type=unknown path=anon_inode:[eventpoll]
2024-01-26 15:10:26 at java.base/jdk.internal.crac.mirror.Core.translateJVMExceptions(Core.java:117)
2024-01-26 15:10:26 at java.base/jdk.internal.crac.mirror.Core.checkpointRestore1(Core.java:188)
2024-01-26 15:10:26 at java.base/jdk.internal.crac.mirror.Core.checkpointRestore(Core.java:286)
I tried on my local Docker and in AWS EC2. The exceptions are the same. Thank you for any help.
So after some investigation I discovered that the problem was in grpc/netty. I rescheduled the launch of the grpc client after recovery. Looks fine so far