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

使用Playtika Test Containers for Google PubSub在Jenkins集成测试遇致命异常

问题描述
  • 本地Mac环境下通过IntelliJ运行集成测试完全正常,但在Jenkins构建过程中,创建并启动容器后立即触发JVM致命错误,错误日志如下:
[DEBUG] # A fatal error has been detected by the Java Runtime Environment:
[DEBUG] #
[DEBUG] #  SIGSEGV (0xb) at pc=0x0000000000003fd6, pid=95, tid=0x00007f73d8feeb10
[DEBUG] #
[DEBUG] # JRE version: OpenJDK Runtime Environment (8.0_212-b04) (build 1.8.0_212-b04)
[DEBUG] # Java VM: OpenJDK 64-Bit Server VM (25.212-b04 mixed mode linux-amd64 compressed oops)
[DEBUG] # Derivative: IcedTea 3.12.0
[DEBUG] # Distribution: Custom build (Sat May  4 17:33:35 UTC 2019)
[DEBUG] # Problematic frame:
[DEBUG] # C  0x0000000000003fd6
[DEBUG] #
[DEBUG] # Core dump written. Default location: /home/jenkins/workspace/le-service_feature_DI-13019/core or core.95
[DEBUG] #
[DEBUG] # An error report file with more information is saved as:
[DEBUG] # /home/jenkins/workspace/le-service_feature_DI-13019/hs_err_pid95.log
[DEBUG] #
[DEBUG] # If you would like to submit a bug report, please include
[DEBUG] # instructions on how to reproduce the bug and visit:
[DEBUG] #   https://icedtea.classpath.org/bugzilla
[DEBUG] #
  • 无法在Jenkins指定路径找到上述hs_err_pid95.log文件,同时出现Maven Surefire相关异常,内容如下:
[ERROR] The forked VM terminated without properly saying goodbye. VM crash or System.exit called?
[ERROR] Command was /bin/sh -c cd /home/jenkins/workspace/le-service_feature_DI-13019 && /usr/lib/jvm/java-1.8-openjdk/jre/bin/java -javaagent:/root/.m2/repository/org/jacoco/org.jacoco.agent/0.8.8/org.jacoco.agent-0.8.8-runtime.jar=destfile=/home/jenkins/workspace/le-service_feature_DI-13019/target/jacoco.exec,append=true -jar /home/jenkins/workspace/le-service_feature_DI-13019/target/surefire/surefirebooter602603825469423467.jar /home/jenkins/workspace/le-service_feature_DI-13019/target/surefire 2022-09-08T16-46-13_263-jvmRun1 surefire6688438040654119002tmp surefire_07067221753418690335tmp
[ERROR] Error occurred in starting fork, check output in log
[ERROR] Process Exit Code: 134
排查与解决建议
  • 统一JDK版本:本地JDK与Jenkins节点使用的OpenJDK 1.8.0_212版本差异可能导致问题,将Jenkins节点的JDK升级至较新的8u稳定版本(如8u372),旧版本OpenJDK存在容器交互相关的已知bug。
  • 排查Jacoco兼容性:命令行中包含Jacoco代理,临时禁用Jacoco代码覆盖率收集,若崩溃消失,说明Jacoco 0.8.8与当前环境不兼容,升级Jacoco至0.8.10+版本。
  • 增加节点资源:JVM崩溃可能源于内存不足,为Jenkins节点分配更多内存,同时通过Maven参数-Xmx2g(根据实际情况调整)增大测试进程的JVM堆大小。
  • 分析核心转储文件:尝试在Jenkins工作空间或系统默认路径查找核心转储文件(core或core.95),用gdb工具分析转储内容定位崩溃根源。
  • 调整Surefire配置:修改pom.xml中的Surefire插件配置,禁用fork模式或调整fork的JVM参数:
<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <configuration>
    <!-- 禁用fork模式 -->
    <forkCount>0</forkCount>
    <!-- 或调整fork的JVM参数 -->
    <argLine>-Xmx2g -XX:+UseG1GC</argLine>
  </configuration>
</plugin>
  • 检查容器权限:确认Jenkins运行用户已加入docker用户组,拥有操作容器的足够权限,避免因权限不足导致进程崩溃。

内容的提问来源于stack exchange,提问作者Mohamed Ezz El-Din

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 05:45:35