You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot集成CRaC遇权限错误及Socket Checkpoint异常求助

Spring Boot集成CRaC时遇到的两类核心问题

场景与操作步骤

我在搭建Spring Boot项目并集成CRaC时,执行以下步骤后出现错误:

  • 执行 docker build -f ./Dockerfile/base/Dockerfile -t centos-zulu-jdk17-crac .
  • 执行 /usr/bin/env bash ./checkpoint.sh
  • 执行 docker compose up

错误1:CRIU创建veth pair权限不足

执行上述步骤后出现如下错误:

Error (criu/libnetlink.c:54): -1 reported by netlink: Operation not permitted Error (criu/net.c:3744): Unable to create a veth pair: -1

(IDE中有对应的日志截图)

错误2:checkpointOnRefresh时Socket连接未关闭导致失败

运行checkpointOnRefresh.sh文件时,docker容器中出现如下错误堆栈:

ERROR:
org.springframework.context.ApplicationContextException: Failed to take CRaC checkpoint on refresh
graalvm-1   |   at org.springframework.context.support.DefaultLifecycleProcessor$CracDelegate.checkpointRestore(DefaultLifecycleProcessor.java:534) ~[spring-context-6.1.3.jar!/:6.1.3]
graalvm-1   |   at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:193) ~[spring-context-6.1.3.jar!/:6.1.3]
graalvm-1   |   at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:978) ~[spring-context-6.1.3.jar!/:6.1.3]
graalvm-1   |   at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) ~[spring-context-6.1.3.jar!/:6.1.3]
graalvm-1   |   at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.2.2.jar!/:3.2.2]
graalvm-1   |   at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.2.2.jar!/:3.2.2]
graalvm-1   |   at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.2.2.jar!/:3.2.2]
graalvm-1   |   at org.springframework.boot.SpringApplication.run(SpringApplication.java:334) ~[spring-boot-3.2.2.jar!/:3.2.2]
graalvm-1   |   at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354) ~[spring-boot-3.2.2.jar!/:3.2.2]
graalvm-1   |   at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-3.2.2.jar!/:3.2.2]
graalvm-1   |   at com.example.graalvm.GraalvmApplication.main(GraalvmApplication.java:10) ~[!/:0.0.1-SNAPSHOT]
graalvm-1   |   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
graalvm-1   |   at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
graalvm-1   |   at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
graalvm-1   |   at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
graalvm-1   |   at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:91) ~[graalvm-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
graalvm-1   |   at org.springframework.boot.loader.launch.Launcher.launch(Launcher.java:53) ~[graalvm-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
graalvm-1   |   at org.springframework.boot.loader.launch.JarLauncher.main(JarLauncher.java:58) ~[graalvm-0.0.1-SNAPSHOT.jar:0.0.1-SNAPSHOT]
graalvm-1 | Caused by: org.crac.CheckpointException: null
graalvm-1   |   at org.crac.Core$Compat.checkpointRestore(Core.java:144) ~[crac-1.4.0.jar!/:na]
graalvm-1   |   at org.crac.Core.checkpointRestore(Core.java:237) ~[crac-1.4.0.jar!/:na]
graalvm-1   |   at org.springframework.context.support.DefaultLifecycleProcessor$CracDelegate.checkpointRestore(DefaultLifecycleProcessor.java:528) ~[spring-context-6.1.3.jar!/:6.1.3]
graalvm-1   |   ... 17 common frames omitted
graalvm-1   |   Suppressed: jdk.internal.crac.mirror.impl.CheckpointOpenSocketException: Socket[addr=postgres/192.168.247.3,port=5432,localport=36672]
graalvm-1   |           at java.base/jdk.internal.crac.JDKSocketResourceBase.lambda$beforeCheckpoint$0(JDKSocketResourceBase.java:68) ~[na:na]
graalvm-1   |           at java.base/jdk.internal.crac.mirror.Core.checkpointRestore1(Core.java:169) ~[na:na]
graalvm-1   |           at java.base/jdk.internal.crac.mirror.Core.checkpointRestore(Core.java:286) ~[na:na]
graalvm-1   |           at java.base/jdk.internal.crac.mirror.Core.checkpointRestore(Core.java:265) ~[na:na]
graalvm-1   |           at jdk.crac/jdk.crac.Core.checkpointRestore(Core.java:72) ~[jdk.crac:na]
graalvm-1   |           at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
graalvm-1   |           at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
graalvm-1   |           at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
graalvm-1   |           at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
graalvm-1   |           at org.crac.Core$Compat.checkpointRestore(Core.java:141) ~[crac-1.4.0.jar!/:na]
graalvm-1   |           ... 19 common frames omitted
graalvm-1   |   Suppressed: jdk.internal.crac.mirror.impl.CheckpointOpenSocketException: Socket[addr=postgres/192.168.247.3,port=5432,localport=53216]
graalvm-1   |           at java.base/jdk.internal.crac.JDKSocketResourceBase.lambda$beforeCheckpoint$0(JDKSocketResourceBase.java:68) ~[na:na]
graalvm-1   |           at java.base/jdk.internal.crac.mirror.Core.checkpointRestore1(Core.java:169) ~[na:na]
graalvm-1   |           at java.base/jdk.internal.crac.mirror.Core.checkpointRestore(Core.java:286) ~[na:na]
graalvm-1   |           at java.base/jdk.internal.crac.mirror.Core.checkpointRestore(Core.java:265) ~[na:na]
graalvm-1   |           at jdk.crac/jdk.crac.Core.checkpointRestore(Core.java:72) ~[jdk.crac:na]
graalvm-1   |           at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
graalvm-1   |           at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na]
graalvm-1   |           at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
graalvm-1   |           at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na]
graalvm-1   |           at org.crac.Core$Compat.checkpointRestore(Core.java:141) ~[crac-1.4.0.jar!/:na]
graalvm-1   |           ... 19 common frames omitted

(IDE中有对应的堆栈跟踪截图)

排查与求助

我判断问题和Socket连接有关,也查阅过CRaC官方文档中关于fd-policies的内容,但还是不知道该如何配置来解决这两个问题。项目代码托管在GitHub,仓库名为graalvm-demo,恳请帮忙解决。


内容的提问来源于stack exchange,提问作者Pham Hoang Phuc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 10:54:52