快速结论:这个报错通常出现在执行 accelerate test(或 accelerate-launch 跑多进程脚本)时,某个非主进程先通过了 main_process_first 的检查,导致断言失败。优先排查系统 Linux 内核版本是否过低,Issue 中明确指向这是 PyTorch 与低版本内核交互的已知限制。
适用环境:Ubuntu 22.04.2 LTS;Python 3.8;分布式后端 nccl;分布式环境 MEGATRON_LM;混合精度 fp16;GPU 环境;问题内核版本 3.10.0(Issue 中另有人反馈 4.14.105)。
最快修复方案:将 Linux 内核升级到 5.5.0 或更高版本。Issue 中报告者把内核换成 5.15.0-60-generic 后 accelerate test 恢复正常。
注意事项:该结论来自低内核版本场景的验证,升级内核并非在所有环境下都能一步解决;如果服务器不允许升级内核,Issue 中仅提到“可能”可以尝试降级 PyTorch,但没有确认有效版本,也未提供已修正的 accelerate 版本。
问题场景
用户在运行 accelerate test 时触发问题。测试脚本会通过 accelerate-launch 启动多进程执行 test_script.py,在检查主进程顺序的 process_execution_check() 处断言失败,随即分布式任务以非零退出码结束。用户还提到该问题看起来与 accelerator.main_process_first() 相关。
报错原文
RuntimeError: 'accelerate-launch /venv/L_E_T/lib/python3.8/site-packages/accelerate/test_utils/scripts/test_script.py' failed with returncode 1
stderr: Detected kernel version 3.10.0, which is below the recommended minimum of 5.5.0; this can cause the process to hang. It is recommended to upgrade the kernel to the minimum version or higher.
stderr: Traceback (most recent call last):
stderr: File "/venv/L_E_T/lib/python3.8/site-packages/accelerate/test_utils/scripts/test_script.py", line 626, in
stderr: main()
stderr: File "/venv/L_E_T/lib/python3.8/site-packages/accelerate/test_utils/scripts/test_script.py", line 588, in main
stderr: process_execution_check()
stderr: File "/venv/L_E_T/lib/python3.8/site-packages/accelerate/test_utils/scripts/test_script.py", line 85, in process_execution_check
stderr: assert text.startswith("Currently in the main process\n"), "Main process was not first"
stderr: AssertionError: Main process was not first
原因分析
Issue 讨论中给出的核心原因是系统 Linux 内核版本过低。日志已经明确提示检测到内核 3.10.0,低于建议的最低 5.5.0,可能导致进程挂起或顺序异常。维护者回复指出:当内核低于某个版本时,类似 main_process_first 的行为无法正常工作,这是 PyTorch 与操作系统交互的限制,而不是 accelerate 单独能绕过的逻辑。因此进程顺序检查中“主进程应该最先执行”的断言失败,最终表现为该 RuntimeError。进一步说,若你在日志里看到同样的低内核警告,并伴随进程挂起、进程顺序不对或 accelerate test 报 “main process was not first”,维护者建议的就是升级 Linux 内核。
环境排查
- 确认系统内核版本:执行
uname -r,看是否低于 5.5.0(Issue 中出错为 3.10.0,也有人为 4.14.105)。 - 确认操作系统版本(Issue 中为 Ubuntu 22.04.2 LTS)。
- 确认 Python 版本(Issue 中为 3.8)。
- 确认分布式环境与后端(Issue 中为 MEGATRON_LM + nccl)。
- 确认 GPU 设备分配是否为 2 进程、设备 cuda:0 / cuda:1。
- 确认是否使用
accelerate test/accelerate-launch触发多进程脚本。 - 确认日志中是否出现 “below the recommended minimum of 5.5.0” 这条 kernel 警告。
解决步骤
- 先运行
uname -r,确认当前内核版本。如果低于 5.5.0,继续下一步。 - 升级 Linux 内核到 5.5.0 或更高版本。Issue 中报告者换成 Ubuntu 22.04.2 LTS 的
5.15.0-60-generic内核后问题消失。 - 升级内核后重启系统,确保新内核生效。
- 再次运行
accelerate test,观察是否还会出现 “Main process was not first”。 - 如果所在环境(如 SageMaker、受限服务器)无法升级内核:Issue 中维护者提出这本质上属于 PyTorch 的问题,可优先尝试降级 PyTorch,但没有给出确认可用的版本;也未确认存在某个不需要升级内核的 accelerate 旧版本。
验证方法
升级内核并重启后,重新执行 accelerate test。确认日志中不再出现 “Detected kernel version … below the recommended minimum of 5.5.0” 的警告,且 test_script.py 不再在 process_execution_check() 处抛出 AssertionError: Main process was not first,多进程任务能正常跑完并返回成功即可认为问题已解决。Issue 中报告者正是通过切换到 5.15.0-60-generic 内核后确认恢复正常的。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。
![[P1] Converge two RetrievalTest handler implementations and unify error code convention](https://www.chat-gpts.plus/wp-content/uploads/2026/09/15744-fab62b43-768x403.jpg)
![[Bug]: Function tools fail with reasoning_effort error for OpenAI gpt-5.6 family models (gpt-5.6-sol/luna/terra) on /chat/completions](https://www.chat-gpts.plus/wp-content/uploads/2026/09/33221-939ffc10-768x403.jpg)
![[Bug]: Built-in LLM Passthrough Routes Fail with SERVER_ROOT_PATH](https://www.chat-gpts.plus/wp-content/uploads/2026/09/22272-0db4d37b-768x403.jpg)