Jest从26升级至29后Worker进程因SIGBUS意外终止求助
Jest 29 升级后 Worker SIGBUS 内存问题排查求助
- 运行环境:GitLab 流水线,使用7个 Worker 执行2000+测试用例
- 问题触发:将 Jest 从26版本升级到29后出现内存相关异常
- 已尝试的修复操作:
- 给 jest-worker 打了官方针对空闲内存限制的补丁
- 配置
maxWorkerIdleMemoryLimit参数为0.17
- 仍出现的错误信息:
A jest worker process (pid=354) was terminated by another process: signal=SIGBUS, exitCode=null. Operating system logs may contain more information on why this occurred. - 错误发生前的调试日志(记录pending request、Worker状态、childIdleMemoryUsage和childIdleMemoryUsageLimit):
[ 2, false ] ok 231087104 17244036259 Logging necessary info here [ 2, false ] ok 223420968 17244036259 Logging necessary info here [ 2, false ] ok 237182144 17244036259 Logging necessary info here [ 2, false ] ok 200207560 17244036259 Logging necessary info here [ 2, false ] ok 200501880 17244036259 Logging necessary info here [ 2, false ] ok 185813512 17244036259 Logging necessary info here [ 2, false ] ok 240861664 17244036259 Logging necessary info here [ 2, false ] ok 241815840 17244036259 Logging necessary info here [ 2, false ] ok 221084056 17244036259 Logging necessary info here [ 2, false ] ok 230363528 17244036259 Logging necessary info here [ 2, false ] ok 183446384 17244036259 Logging necessary info here [ 2, false ] ok 242024096 17244036259 Logging necessary info here [ 2, false ] ok 175583640 17244036259 Logging necessary info here [ 2, false ] ok 228281704 17244036259 Logging necessary info here [ 2, false ] ok 237826080 17244036259 Logging necessary info here - 调试定位的异常点:Worker已发送
CHILD_MESSAGE_END信号,但processEnd函数尚未执行,_onExit函数就已被调用,此时request仍不为null导致报错,暂不清楚该执行顺序异常的原因,请求协助排查。
内容的提问来源于stack exchange,提问作者Hardik Modi
相关产品推荐
相关产品推荐

