How should I handle the gRPC server shutdown during CRaC checkpointing?

38 views Asked by At

As some Java vendors already support CRaC I tried to play around with it and use it to minimize startup time. I'm able to create a checkpoint of JVM when I use DB. However, I'm facing some issues when I try to make a checkpoint when my app contains a gRPC server (Shaded Netty). It throws the following exceptions.

An exception during a checkpoint operation:
jdk.internal.crac.mirror.CheckpointException
        Suppressed: jdk.internal.crac.mirror.impl.CheckpointOpenResourceException: FD fd=61 type=unknown path=anon_inode:[eventpoll]
                at java.base/jdk.internal.crac.mirror.Core.translateJVMExceptions(Core.java:117)
                at java.base/jdk.internal.crac.mirror.Core.checkpointRestore1(Core.java:188)
                at java.base/jdk.internal.crac.mirror.Core.checkpointRestore(Core.java:286)
                at java.base/jdk.internal.crac.mirror.Core.checkpointRestoreInternal(Core.java:299)

I'm using Ubuntu 22.04.2 LTS and Java Zulu21.32+17-CRaC-CA (build 21.0.2+13-LTS)

Also, I've created a small application to be able to reproduce it https://github.com/isabek/crac-grpc-example

I think I'm handling gRPC server termination incorrectly

0

There are 0 answers