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

如何解决Git中Jenkins构建时的‘index-pack died of signal 15’错误?

Jenkins构建git fetch阶段index-pack died of signal 15间歇性故障解决思路

Signal 15是SIGTERM信号,说明index-pack进程被主动终止而非崩溃,结合你试过shallow克隆无效、无分支标签仓库也触发的情况,可以从以下几个方向排查:

  • 检查Jenkins构建超时配置:
    大概率是Jenkins job的超时时间设置过短,大仓库(你的仓库有78万+对象)的index-pack处理还没完成就被Jenkins强制终止。去job配置里找到「构建超时」选项,要么延长超时时长,要么暂时取消超时限制测试。

  • 排查Jenkins Agent资源瓶颈:
    运行构建的Agent可能存在资源不足:

    • 内存不够:index-pack处理对象索引需要大量内存,给Agent加内存,或者在git命令里加--no-tags减少无关对象拉取,即使仓库无标签也能减少不必要的处理;也可以用--depth 50 --no-single-branch优化shallow克隆的范围,平衡克隆深度和资源占用。
    • CPU/IO被抢占:如果Agent同时运行其他任务,导致index-pack进程被系统资源管理器终止,监控Agent的CPU、内存、磁盘IO使用情况(比如用top、iostat),确认是否有资源过载的情况。
  • 调整Git参数优化性能:
    针对大仓库优化git fetch的处理效率,降低index-pack的压力:

    • 开启多线程打包:执行git config --global pack.threads 4(根据Agent核心数调整,比如8核就设为8),加快对象压缩和索引速度。
    • 限制打包内存:git config --global pack.windowMemory 1024m,避免打包时占用过多内存导致系统触发终止信号。
    • 精简拉取内容:用git fetch --no-tags --no-prune,只拉取当前需要的分支内容,减少处理量。
  • 升级Git版本:
    旧版本Git可能存在index-pack的已知bug,把Agent上的Git升级到2.30以上的稳定版,很多此类间歇性问题会随版本修复解决。

  • 排查网络稳定性:
    间歇性故障可能和网络波动有关,比如连接中断后进程被间接终止。在Agent上手动执行几次git fetch命令,看是否能复现问题;或者换用SSH协议拉取仓库(如果之前用HTTPS),反之亦然,排除网络层面的干扰。

  • 清理本地仓库缓存:
    Agent上的本地git仓库缓存可能损坏,导致间歇性错误。删除对应job的本地仓库目录,让Jenkins重新克隆,排除缓存问题。

错误日志

22:41:16  stdout: 
22:41:16  stderr: remote: Enumerating objects: 781948, done.        
22:41:16  remote: Counting objects:   0% (1/8931)        
remote: Counting objects:   1% (90/8931)        
remote: Counting objects:   2% (179/8931)        
remote: Counting objects:   3% (268/8931)        
remote: Counting objects:   4% (358/8931)        
remote: Counting objects:   5% (447/8931)        
remote: Counting objects:  96% (8574/8931)        
remote: Counting objects:  97% (8664/8931)        
remote: Counting objects:  98% (8753/8931)        
remote: Counting objects:  99% (8842/8931)        
remote: Counting objects: 100% (8931/8931)        
remote: Counting objects: 100% (8931/8931), done.        
22:41:16  remote: Compressing objects:   0% (1/2514)        
remote: Compressing objects:   1% (26/2514)        
remote: Compressing objects:   2% (51/2514)        
remote: Compressing objects:   3% (76/2514)        
remote: Compressing objects:   4% (101/2514)        
remote: Compressing objects:   5% (126/2514)        
remote: Compressing objects:   6% (151/2514)        
remote: Compressing objects:   7% (176/2514)        
remote: Compressing objects:   8% (202/2514)        
remote: Compressing objects:   9% (227/2514)        
remote: Compressing objects:  10% (252/2514)        
remote: Compressing objects:  11% (277/2514)        
remote: Compressing objects:  12% (302/2514)        
remote: Compressing objects:  13% (327/2514)        
remote: Compressing objects:  14% (352/2514)        
remote: Compressing objects:  15% (378/2514)        
remote: Compressing objects:  71% (1785/2514)        
remote: Compressing objects:  72% (1811/2514)        
remote: Compressing objects:  73% (1836/2514)        
remote: Compressing objects:  74% (1861/2514)        
remote: Compressing objects:  75% (1886/2514)        
remote: Compressing objects:  76% (1911/2514)        
remote: Compressing objects:  77% (1936/2514)        
remote: Compressing objects:  78% (1961/2514)        
remote: Compressing objects:  79% (1987/2514)            
remote: Compressing objects:  97% (2439/2514)        
remote: Compressing objects:  98% (2464/2514)        
remote: Compressing objects:  99% (2489/2514)        
remote: Compressing objects: 100% (2514/2514)        
remote: Compressing objects: 100% (2514/2514), done.        
22:41:16  Receiving objects:   0% (1/781948)   
Receiving objects:   0% (1290/781948), 164.01 KiB | 157.00 KiB/s   
Receiving objects:   0% (2623/781948), 332.01 KiB | 161.00 KiB/s   
Receiving objects:   0% (3914/781948), 420.01 KiB | 161.00 KiB/s   
Receiving objects:  68% (533555/781948), 101.66 MiB | 146.00 KiB/s   
error: index-pack died of signal 15
22:41:16  fatal: index-pack failed
22:41:16    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandIn(CliGitAPIImpl.java:2734)
22:41:16    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.launchCommandWithCredentials(CliGitAPIImpl.java:2111)
22:41:16    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl.access$500(CliGitAPIImpl.java:87)
22:41:16    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$1.execute(CliGitAPIImpl.java:623)
22:41:16    at org.jenkinsci.plugins.gitclient.CliGitAPIImpl$2.execute(CliGitAPIImpl.java:852)
22:41:16    at 

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 12:57:01