CI: 并行 Jest 配置运行期间丢失了 Buildkite 代理
作者: tylersmalley创建于 2026年9月17日更新于 2026年9月18日
标签Team:Operations
□ 总结
Buildkite代理正在丢失,而单一的Jest工作同时进行多达三个Jest配置过程. 每个过程都有4096MB的旧空间限制;在16GB"n2-标准-4"的代理上,其总需求加上母过程和本土的起落架可以使主机内存耗尽.
失败的尝试用 " 1 " 退出,代理人向 " 丢失 " 过渡,Buildkite自动重复工作。 工作日志突然结束,没有简讯故障摘要或 " OOMKilled " 一行,因为代理商本身已消失。 这可以让最后的建筑保持绿色,同时掩盖失败的尝试并增加大量的CI时间.
每个 Jest 配置进程都使用 " 运行的InBand " ;并行性是在配置套件之间,而不是在一个套件内测试文件之间。
□ 实例
- [PR建503826,Jest shard #3-失败尝试] (https://builtkite.com/elastic/kibana-pul-request/builds/503826#01a0f6f-5a8b-429d-afa8-8a826eb05587):退出"一";代理成为"丢失";自动复试. 其中包括`x-pack/plagin/plugins/shared/maps/jest.config.js'。
- PR建502056 Jest shard #10-失败尝试:退出"一";代理成为"迷失";自动再审.
- PR #290963,其CI历史中包含两个受到影响的建筑.
□ 影响
- 在产生正常测试结果之前,杰斯特工作断断续续地失去其Buildkite剂。
- 自动重试掩盖了最终建设状态中的失败.
- 必须从检查站收回已完成的配置,并重新进行剩余工作。
- PR和合并验证需要更长的时间,并消耗额外的CI能力.
内容来源: elastic/kibana