You need to enable JavaScript to run this app. Red Hat OpenJDK 11.0.10+9下Mongo连接触发JVM double free崩溃及ClientEncryption问题
优惠活动
大模型
产品
解决方案
定价
更多

Red Hat OpenJDK 11.0.10+9下Mongo连接触发JVM double free崩溃及ClientEncryption问题

问题场景与环境
  • 运行环境:Red Hat OpenJDK 11.0.10+9(Red Hat发行版OpenJDK Runtime Environment 11.0.10+9-LTS),部署于Azure Kubernetes Pod
  • 技术栈:Spring Boot 搭配Spring Data JPA
  • 当前遇到两个强关联技术问题:
    • Mongo ClientEncryption 组件不支持单例使用模式,疑似原生内存管理逻辑存在设计缺陷
    • JVM间歇性致命崩溃:Pod正常运行12-13小时、经历应用空闲期后,首次发起Mongo数据库连接时触发崩溃;持续全量负载运行时无故障复现,初步怀疑和上述ClientEncryption组件的原生内存问题直接相关
崩溃现场报错
free(): double free detected in tcache 2
Java Runtime Environment检测到致命错误:
SIGSEGV (0xb) at pc=0x00007f3e214fbd21, pid=1, tid=91
JRE版本:OpenJDK Runtime Environment 18.9 (11.0.10+9) (build 11.0.10+9-LTS)
Java VM:OpenJDK 64-Bit Server VM 18.9 (11.0.10+9-LTS, mixed mode, sharing, tiered, compressed oops, g1 gc, linux-amd64)
问题帧:
C  [libc.so.6+0x21d21]  abort+0x203
核心转储将写入默认位置:核心转储可通过"/usr/share/apport/apport %p %s %c %d %P %E"处理(或写入/home/jboss/core.1)
更详细的错误报告文件已保存至:/home/jboss/hs_err_pid1.log
日志附带对应发行版的错误提交指引

关键定位信息:崩溃发生在Java虚拟机外部的原生代码层,可通过故障帧快速锁定问题组件范围。

触发链路日志

崩溃前完整应用日志片段:

2021-05-05 07:36:29.512 DEBUG 1 --- [nio-8090-exec-1] c.xxx.xx.xx.SectionHandlerService        [db340496-d1fb-43f0-92c9-f7114194dfbf] : questionnaire  extracted with Id :: 4308655
2021-05-05 07:36:29.512 DEBUG 1 --- [nio-8090-exec-1] com.xxx.utils.MapperUtil               [db340496-d1fb-43f0-92c9-f7114194dfbf] : mapToModel Started
2021-05-05 07:36:29.512 DEBUG 1 --- [nio-8090-exec-1] com.xxx.utils.MapperUtil               [db340496-d1fb-43f0-92c9-f7114194dfbf] : Converting com.xxx.xxx.entity.Section To com.xxx.xxxxx.SectionModel class using mapToModel
2021-05-05 07:36:29.623  INFO 1 --- [nio-8090-exec-1] org.mongodb.driver.connection            [db340496-d1fb-43f0-92c9-f7114194dfbf] : Opened connection [connectionId{localValue:266, serverValue:267840}] to xxxxxxxxxxxxxx:27017

日志验证:Mongo驱动输出“连接打开”的日志后,应用立即触发JVM崩溃,无后续Java层异常输出。

故障核心特征
  • 复现条件固定:应用持续满载运行时无崩溃;空闲超过12小时后,首次发起Mongo连接即触发故障
  • 崩溃触发动作和Mongo连接打开逻辑强绑定
  • 故障类型为原生内存错误(double free、段错误),不属于Java层可捕获、可处理的异常范畴

内容的提问来源于stack exchange,提问作者Pratik Bhajankar

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.22 23:06:04