Java on CRaC:能否对已恢复的JVM创建检查点?
CRaC二次检查点创建的支持说明
支持状态
Azul OpenJDK 25 搭配 CRaC 技术不支持对恢复后的实例再次创建检查点。CRaC 当前的实现是单生命周期设计:一个 JVM 实例仅能被 checkpoint 一次,恢复后的实例无法生成新的检查点,这是当前版本的固有限制,不是操作问题。
报错原因
删除旧的core.img后虽然能触发检查点操作,但底层JVM没有二次checkpoint的逻辑支撑,所以执行过程中必然会报错,属于超出当前功能范围的操作导致的异常。
参考依据
- Azul 官方的 CRaC 文档明确标注了这个生命周期限制:JVM 从启动到 checkpoint 是单向流程,恢复后的实例不具备再次生成检查点的能力。
- OpenJDK CRaC 项目的官方说明也提到,当前实现仅支持单次 checkpoint,二次 checkpoint 属于未实现的功能,后续版本可能会扩展,但 25 版本暂不支持。
内容的提问来源于stack exchange,提问作者Marc Polizzi
相关产品推荐
相关产品推荐

