ERROR: SonarQube scanner exited with non-zero code: 137

本文探讨了SonarQube扫描过程中遇到的错误,包括过时指标警告、报告文件缺失及非零退出代码的问题。分析指出,这些错误可能由内存资源不足引起,建议检查SonarQube、CE进程及Jenkins slave的内存配置。

报这个错误:

INFO: 75 files indexed
INFO: Quality profile for go: Sonar way
INFO: ------------- Run sensors on module paasGoTest
INFO: Sensor JaCoCo XML Report Importer [jacoco]
INFO: Sensor JaCoCo XML Report Importer [jacoco] (done) | time=2ms
INFO: Sensor SonarGo [go]
WARN: Metric 'comment_lines_data' is deprecated. Provided value is ignored.
WARN: Unable to locate 'report-task.txt' in the workspace. Did the SonarScanner succedeed?
ERROR: SonarQube scanner exited with non-zero code: 137
Finished: FAILURE

1.要么就是sonar es 或者ce进程内存不足

2.Jenkins slave 内存不足,sonarScanner 运行不起来

运行sonarScanner 的slave 至少要2-4G内存,一般设置4G. es 至少需要4-6G内存,ce至少需要4G内存。

<think>好的,我现在需要解决用户提出的SonarQube扫描器退出代码137的问题。首先,我得回忆一下错误代码137通常代表什么。根据经验,在Linux系统中,退出代码137通常是由于进程被信号终止,而137减去128等于9,对应的是SIGKILL信号。这意味着容器或进程被系统强制终止了,最常见的原因可能是内存不足。 接下来,我要参考用户提供的引用内容。用户之前提到了Container exited with a non-zero exit code 1,虽然那个问题可能和内存无关,但当前的问题涉及退出代码137,更可能与资源限制有关。引用[1]中用户遇到的是退出代码1,但后来出现了137,这说明用户可能在不同的环境中遇到了不同的问题,需要分开处理。 用户现在的问题是关于SonarQube扫描器的,因此需要具体考虑SonarQube的环境配置。可能的解决方案包括调整内存设置,检查构建服务器的资源使用情况,优化扫描配置,或者查看日志获取更多信息。此外,可能需要考虑SonarQube扫描器本身的内存需求,以及是否在容器环境中运行,如Docker,这时候容器的内存限制是否足够。 然后,我需要确保回答的结构清晰,分点说明可能的原因和对应的解决方案。同时,根据用户提供的引用中的内容,可能需要提到类似的问题处理步骤,比如检查参数、重启服务等,但这里更侧重于内存和资源分配的问题。此外,生成的相关问题需要围绕这个错误代码的可能原因和解决方法展开,帮助用户进一步排查问题。 最后,要确保回答符合格式要求,使用正确的中文,数学表达式用$...$,独立公式用$$...$$,虽然这个问题可能不涉及数学公式,但如果有需要的话要正确应用。同时,引用用户提供的引用内容中的相关部分,比如提到参数调整或日志检查,但需要自然融入回答中。</think>关于SonarQube扫描器退出代码137的解决方案,该错误通常与内存资源限制直接相关。以下是分步排查与解决方案: 1. **根本原因分析** Linux系统中退出代码137表示进程被`SIGKILL`信号终止,计算方式为`128+9`(9对应`SIGKILL`)。常见场景: - 容器/进程内存超出限制被OOM Killer强制终止 - 物理服务器内存不足 - SonarQube扫描器分配的JVM堆内存设置过高 2. **关键排查步骤** - **检查系统日志** 执行`dmesg | grep -i kill`查看是否有`oom_kill_process`记录,确认是否触发系统级内存回收机制[^1] - **监控内存使用** 使用`free -h`或`top`命令观察内存消耗峰值,特别关注`buff/cache`和`available`指标 - **调整JVM参数** 修改`sonar-scanner`的JVM配置(通常位于`conf/sonar-scanner.properties`): ```properties sonar.scanner.memoryLimit=2048m # 建议逐步降低测试 sonar.working.directory=./.scannerwork # 确保有足够磁盘空间 ``` 3. **容器环境特殊处理** 若使用Docker运行时: - 增加容器内存限制:`docker run -m 4g ...` - 添加交换空间:`--memory-swap=6g` - 设置JVM参数覆盖: ```dockerfile ENV SONAR_SCANNER_OPTS="-Xmx2g -Xms512m" ``` 4. **扫描优化技巧** - 通过`sonar.exclusions`排除非必要文件 - 关闭未使用的语言插件 - 分模块扫描大型项目 $$ \text{内存需求估算公式}:M_{total} = M_{jvm} + M_{source} \times (1+\alpha) \quad (\alpha \approx 0.3 \text{为缓存系数}) $$
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值