首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是什么导致了“无动作”状态?

是什么导致了“无动作”状态?
EN

Stack Overflow用户
提问于 2018-02-04 18:09:31
回答 2查看 490关注 0票数 0

我有一个Bazel回收站,可以制作一些神器。问题是,它在挂起消息的过程中中途停止:

代码语言:javascript
复制
[3 / 8] no action

到底是什么导致了这种情况呢?这是正常的吗?

(不,这个问题不容易减少,有很多自定义代码,如果我能本地化这个问题,我就不会写这个问题了。我感兴趣的是一般的答案,原则上什么会导致这种情况,这是正常的。)

EN

回答 2

Stack Overflow用户

发布于 2018-02-05 23:50:58

在没有更多信息的情况下很难回答你的问题,但是的,这有时是正常的。Bazel做了几件不是动作的事情。

我看到这种情况的一个原因是,如果Bazel正在计算大量大文件的摘要。如果您在Bazel服务器的堆栈跟踪中看到getDigestInExclusiveMode,很可能是由于此原因。如果这是您的问题,您可以尝试使用--experimental_multi_threaded_digest标志。

票数 2
EN

Stack Overflow用户

发布于 2018-02-05 17:54:18

根据运行Bazel的平台:

  • Windows:我见过类似的行为,但我还不能确定原因。每运行几次,Bazel就会在启动时挂上大约半分钟。

如果这是在执行阶段的中期构建(因为Bazel已经在打印操作状态消息,看起来就是这样),那么一个可能的解释是您的构建包含许多shell命令。我测量了一下,在Linux (带硬盘的虚拟机)上,每个shell命令最多需要1-2ms,但在我的Windows10机器(32GRAM,3.5 the,硬盘)上,它们需要1-2秒,0.5%的命令最多需要10秒。如果您的操作大量使用shell命令,则速度会慢3-4个数量级。对此可以有许多解释(防病毒,进程创建缓慢,MSYS很慢),其中没有一个Bazel控制over.

  • Linux/macOS:运行top,看看卡住的Bazel进程是否在做任何事情。尝试输入Ctrl+\,这将打印一个JVM堆栈跟踪,这可以帮助识别问题。也许JVM卡在锁中等待--这可能意味着错误或错误的规则implementation.

也有其他的可能性,也许你有一个挂起的构建规则。

Bazel最终会继续吗,还是会持续几分钟以上?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48606956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档