【发布时间】:2020-07-17 09:13:40
【问题描述】:
我们的circle-ci 工作流程中有一个flake8 构建阶段,并且此步骤通常由于超时而失败:
Too long with no output (exceeded 10m0s): context deadline exceeded
同时,同一阶段在我们的 Macbook 上本地运行得相当好:
% time make lint
poetry run black .
All done! ✨ ???? ✨
226 files left unchanged.
isort -y
Skipped 2 files
PYTHONPATH=/path/to/project poetry run flake8 --show-source
0
make lint 44.00s user 4.90s system 102% cpu 47.810 total
我们尝试通过将-vv 标志添加到flake8 来调试问题,认为我们会得到一些需要太长时间的插件名称,但我们甚至没有日志中的时间戳:
flake8.processor ForkPoolWorker-31 1004 WARNING Plugin requested optional parameter "visitor" but this is not an available parameter.
flake8.processor ForkPoolWorker-8 1080 WARNING Plugin requested optional parameter "visitor" but this is not an available parameter.
flake8.bugbear ForkPoolWorker-26 1082 INFO Optional warning B950 not present in selected warnings: ['E', 'F', 'W', 'C90']. Not firing it at all.
flake8 会冻结在 CircleCI 上是否有任何已知原因?如何调试问题?
【问题讨论】:
-
如果限制内核解决了问题,则多处理模块可能报告的内核数量超过可用内核,并且它正在上下文切换到死亡 - 当前的 flake8 维护者