Springboot 3.2.2 and CRaC failure in Docker but work in WSL

72 views Asked by At

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.

1

There are 1 answers

1
Alexander Tarasov On BEST ANSWER

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