-
Notifications
You must be signed in to change notification settings - Fork 38.9k
Description
I have a spring boot 3.3.0 application running with embedded tomcat which uses WebClient. When I try out CRaC and generate a checkpoint with -Dspring.context.checkpoint=onRefresh
I get errors during checkpoint creation. The cause is org.springframework.http.client.ReactorResourceFactory which is already started in afterPropertiesSet. I could prevent the errors by implementing a org.crac.Resource that stops the ReactorResourceFactory beforeCheckpoint. As I have some other problems I couldn't try if everything would be fine if I start it again in afterRestore.
Errors during checkpoint creation:
Suppressed: jdk.crac.impl.CheckpointOpenResourceException: FD fd=8 type=unknown path=anon_inode:[eventpoll]
at java.base/jdk.crac.Core.translateJVMExceptions(Core.java:122) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore1(Core.java:192) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:299) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:278) ~[na:na]
at java.base/javax.crac.Core.checkpointRestore(Core.java:73) ~[na:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
at org.crac.Core$Compat.checkpointRestore(Core.java:141) ~[crac-1.4.0.jar!/:na]
... 17 common frames omitted
Suppressed: jdk.crac.impl.CheckpointOpenResourceException: FD fd=9 type=unknown path=anon_inode:[eventfd]
at java.base/jdk.crac.Core.translateJVMExceptions(Core.java:122) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore1(Core.java:192) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:299) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:278) ~[na:na]
at java.base/javax.crac.Core.checkpointRestore(Core.java:73) ~[na:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
at org.crac.Core$Compat.checkpointRestore(Core.java:141) ~[crac-1.4.0.jar!/:na]
... 17 common frames omitted
Suppressed: jdk.crac.impl.CheckpointOpenResourceException: FD fd=10 type=unknown path=anon_inode:[timerfd]
at java.base/jdk.crac.Core.translateJVMExceptions(Core.java:122) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore1(Core.java:192) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:299) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:278) ~[na:na]
at java.base/javax.crac.Core.checkpointRestore(Core.java:73) ~[na:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
at org.crac.Core$Compat.checkpointRestore(Core.java:141) ~[crac-1.4.0.jar!/:na]
... 17 common frames omitted
Suppressed: jdk.crac.impl.CheckpointOpenResourceException: FD fd=11 type=unknown path=anon_inode:[eventpoll]
at java.base/jdk.crac.Core.translateJVMExceptions(Core.java:122) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore1(Core.java:192) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:299) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:278) ~[na:na]
at java.base/javax.crac.Core.checkpointRestore(Core.java:73) ~[na:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
at org.crac.Core$Compat.checkpointRestore(Core.java:141) ~[crac-1.4.0.jar!/:na]
... 17 common frames omitted
Suppressed: jdk.crac.impl.CheckpointOpenResourceException: FD fd=12 type=unknown path=anon_inode:[eventfd]
at java.base/jdk.crac.Core.translateJVMExceptions(Core.java:122) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore1(Core.java:192) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:299) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:278) ~[na:na]
at java.base/javax.crac.Core.checkpointRestore(Core.java:73) ~[na:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
at org.crac.Core$Compat.checkpointRestore(Core.java:141) ~[crac-1.4.0.jar!/:na]
... 17 common frames omitted
Suppressed: jdk.crac.impl.CheckpointOpenResourceException: FD fd=13 type=unknown path=anon_inode:[timerfd]
at java.base/jdk.crac.Core.translateJVMExceptions(Core.java:122) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore1(Core.java:192) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:299) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:278) ~[na:na]
at java.base/javax.crac.Core.checkpointRestore(Core.java:73) ~[na:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
at org.crac.Core$Compat.checkpointRestore(Core.java:141) ~[crac-1.4.0.jar!/:na]
... 17 common frames omitted
Suppressed: jdk.crac.impl.CheckpointOpenResourceException: FD fd=14 type=unknown path=anon_inode:[eventpoll]
at java.base/jdk.crac.Core.translateJVMExceptions(Core.java:122) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore1(Core.java:192) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:299) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:278) ~[na:na]
at java.base/javax.crac.Core.checkpointRestore(Core.java:73) ~[na:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
at org.crac.Core$Compat.checkpointRestore(Core.java:141) ~[crac-1.4.0.jar!/:na]
... 17 common frames omitted
Suppressed: jdk.crac.impl.CheckpointOpenResourceException: FD fd=15 type=unknown path=anon_inode:[eventfd]
at java.base/jdk.crac.Core.translateJVMExceptions(Core.java:122) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore1(Core.java:192) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:299) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:278) ~[na:na]
at java.base/javax.crac.Core.checkpointRestore(Core.java:73) ~[na:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
at org.crac.Core$Compat.checkpointRestore(Core.java:141) ~[crac-1.4.0.jar!/:na]
... 17 common frames omitted
Suppressed: jdk.crac.impl.CheckpointOpenResourceException: FD fd=16 type=unknown path=anon_inode:[timerfd]
at java.base/jdk.crac.Core.translateJVMExceptions(Core.java:122) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore1(Core.java:192) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:299) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:278) ~[na:na]
at java.base/javax.crac.Core.checkpointRestore(Core.java:73) ~[na:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
at org.crac.Core$Compat.checkpointRestore(Core.java:141) ~[crac-1.4.0.jar!/:na]
... 17 common frames omitted
Suppressed: jdk.crac.impl.CheckpointOpenResourceException: FD fd=17 type=unknown path=anon_inode:[eventpoll]
at java.base/jdk.crac.Core.translateJVMExceptions(Core.java:122) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore1(Core.java:192) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:299) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:278) ~[na:na]
at java.base/javax.crac.Core.checkpointRestore(Core.java:73) ~[na:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
at org.crac.Core$Compat.checkpointRestore(Core.java:141) ~[crac-1.4.0.jar!/:na]
... 17 common frames omitted
Suppressed: jdk.crac.impl.CheckpointOpenResourceException: FD fd=18 type=unknown path=anon_inode:[eventfd]
at java.base/jdk.crac.Core.translateJVMExceptions(Core.java:122) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore1(Core.java:192) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:299) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:278) ~[na:na]
at java.base/javax.crac.Core.checkpointRestore(Core.java:73) ~[na:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
at org.crac.Core$Compat.checkpointRestore(Core.java:141) ~[crac-1.4.0.jar!/:na]
... 17 common frames omitted
Suppressed: jdk.crac.impl.CheckpointOpenResourceException: FD fd=19 type=unknown path=anon_inode:[timerfd]
at java.base/jdk.crac.Core.translateJVMExceptions(Core.java:122) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore1(Core.java:192) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:299) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:278) ~[na:na]
at java.base/javax.crac.Core.checkpointRestore(Core.java:73) ~[na:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
at org.crac.Core$Compat.checkpointRestore(Core.java:141) ~[crac-1.4.0.jar!/:na]
... 17 common frames omitted
Suppressed: jdk.crac.impl.CheckpointOpenResourceException: FD fd=20 type=unknown path=anon_inode:[eventpoll]
at java.base/jdk.crac.Core.translateJVMExceptions(Core.java:122) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore1(Core.java:192) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:299) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:278) ~[na:na]
at java.base/javax.crac.Core.checkpointRestore(Core.java:73) ~[na:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
at org.crac.Core$Compat.checkpointRestore(Core.java:141) ~[crac-1.4.0.jar!/:na]
... 17 common frames omitted
Suppressed: jdk.crac.impl.CheckpointOpenResourceException: FD fd=21 type=unknown path=anon_inode:[eventfd]
at java.base/jdk.crac.Core.translateJVMExceptions(Core.java:122) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore1(Core.java:192) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:299) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:278) ~[na:na]
at java.base/javax.crac.Core.checkpointRestore(Core.java:73) ~[na:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
at org.crac.Core$Compat.checkpointRestore(Core.java:141) ~[crac-1.4.0.jar!/:na]
... 17 common frames omitted
Suppressed: jdk.crac.impl.CheckpointOpenResourceException: FD fd=22 type=unknown path=anon_inode:[timerfd]
at java.base/jdk.crac.Core.translateJVMExceptions(Core.java:122) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore1(Core.java:192) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:299) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:278) ~[na:na]
at java.base/javax.crac.Core.checkpointRestore(Core.java:73) ~[na:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
at org.crac.Core$Compat.checkpointRestore(Core.java:141) ~[crac-1.4.0.jar!/:na]
... 17 common frames omitted
Suppressed: jdk.crac.impl.CheckpointOpenResourceException: FD fd=23 type=unknown path=anon_inode:[eventpoll]
at java.base/jdk.crac.Core.translateJVMExceptions(Core.java:122) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore1(Core.java:192) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:299) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:278) ~[na:na]
at java.base/javax.crac.Core.checkpointRestore(Core.java:73) ~[na:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
at org.crac.Core$Compat.checkpointRestore(Core.java:141) ~[crac-1.4.0.jar!/:na]
... 17 common frames omitted
Suppressed: jdk.crac.impl.CheckpointOpenResourceException: FD fd=24 type=unknown path=anon_inode:[eventfd]
at java.base/jdk.crac.Core.translateJVMExceptions(Core.java:122) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore1(Core.java:192) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:299) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:278) ~[na:na]
at java.base/javax.crac.Core.checkpointRestore(Core.java:73) ~[na:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
at org.crac.Core$Compat.checkpointRestore(Core.java:141) ~[crac-1.4.0.jar!/:na]
... 17 common frames omitted
Suppressed: jdk.crac.impl.CheckpointOpenResourceException: FD fd=25 type=unknown path=anon_inode:[timerfd]
at java.base/jdk.crac.Core.translateJVMExceptions(Core.java:122) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore1(Core.java:192) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:299) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:278) ~[na:na]
at java.base/javax.crac.Core.checkpointRestore(Core.java:73) ~[na:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
at org.crac.Core$Compat.checkpointRestore(Core.java:141) ~[crac-1.4.0.jar!/:na]
... 17 common frames omitted
Suppressed: jdk.crac.impl.CheckpointOpenResourceException: FD fd=26 type=unknown path=anon_inode:[eventpoll]
at java.base/jdk.crac.Core.translateJVMExceptions(Core.java:122) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore1(Core.java:192) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:299) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:278) ~[na:na]
at java.base/javax.crac.Core.checkpointRestore(Core.java:73) ~[na:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
at org.crac.Core$Compat.checkpointRestore(Core.java:141) ~[crac-1.4.0.jar!/:na]
... 17 common frames omitted
Suppressed: jdk.crac.impl.CheckpointOpenResourceException: FD fd=27 type=unknown path=anon_inode:[eventfd]
at java.base/jdk.crac.Core.translateJVMExceptions(Core.java:122) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore1(Core.java:192) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:299) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:278) ~[na:na]
at java.base/javax.crac.Core.checkpointRestore(Core.java:73) ~[na:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
at org.crac.Core$Compat.checkpointRestore(Core.java:141) ~[crac-1.4.0.jar!/:na]
... 17 common frames omitted
Suppressed: jdk.crac.impl.CheckpointOpenResourceException: FD fd=28 type=unknown path=anon_inode:[timerfd]
at java.base/jdk.crac.Core.translateJVMExceptions(Core.java:122) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore1(Core.java:192) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:299) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:278) ~[na:na]
at java.base/javax.crac.Core.checkpointRestore(Core.java:73) ~[na:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
at org.crac.Core$Compat.checkpointRestore(Core.java:141) ~[crac-1.4.0.jar!/:na]
... 17 common frames omitted
Suppressed: jdk.crac.impl.CheckpointOpenResourceException: FD fd=29 type=unknown path=anon_inode:[eventpoll]
at java.base/jdk.crac.Core.translateJVMExceptions(Core.java:122) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore1(Core.java:192) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:299) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:278) ~[na:na]
at java.base/javax.crac.Core.checkpointRestore(Core.java:73) ~[na:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
at org.crac.Core$Compat.checkpointRestore(Core.java:141) ~[crac-1.4.0.jar!/:na]
... 17 common frames omitted
Suppressed: jdk.crac.impl.CheckpointOpenResourceException: FD fd=30 type=unknown path=anon_inode:[eventfd]
at java.base/jdk.crac.Core.translateJVMExceptions(Core.java:122) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore1(Core.java:192) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:299) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:278) ~[na:na]
at java.base/javax.crac.Core.checkpointRestore(Core.java:73) ~[na:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
at org.crac.Core$Compat.checkpointRestore(Core.java:141) ~[crac-1.4.0.jar!/:na]
... 17 common frames omitted
Suppressed: jdk.crac.impl.CheckpointOpenResourceException: FD fd=31 type=unknown path=anon_inode:[timerfd]
at java.base/jdk.crac.Core.translateJVMExceptions(Core.java:122) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore1(Core.java:192) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:299) ~[na:na]
at java.base/jdk.crac.Core.checkpointRestore(Core.java:278) ~[na:na]
at java.base/javax.crac.Core.checkpointRestore(Core.java:73) ~[na:na]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[na:na]
at org.crac.Core$Compat.checkpointRestore(Core.java:141) ~[crac-1.4.0.jar!/:na]
... 17 common frames omitted
I don't know what the reason is that ReactorResourceFactory is already started in afterPropertiesSet. Either don't start it already in afterPropertiesSet or provide a org.crac.Resource implementation that stops it before a checkpoint (at least when the checkpoint is made onRefresh as later after start phase it is alrady stopped by the lifecycle implementation) and starts again after restore.