【问题标题】:`nix-build` process caught up in locking, never terminating`nix-build` 进程陷入锁定,永不终止
【发布时间】:2021-05-14 16:32:11
【问题描述】:

在 NixOS 20.09 上,我在运行 obelisk 项目时遇到了问题。例如。我做ob init 并将regex-tdfa 添加到frontend/frontend.cabal 的依赖项中。

然后

> nix-build -A exe --no-out-link -vvv

我得到类似这样的行的永无止境的输出:

building of '/nix/store/njiphyrb4xcnnckclvv0r2ns65yipnkp-mmorph-1.1.3.tar.gz.drv': woken up
building of '/nix/store/nsncr60fii4fwki70bb5ishf1hzq89b5-coreutils-8.31.drv': created
building of '/nix/store/nsncr60fii4fwki70bb5ishf1hzq89b5-coreutils-8.31.drv': woken up
building of '/nix/store/pvq34lb5r34bypfl53hx8kibakzqw7fc-gnused-4.7.drv': created
building of '/nix/store/pvq34lb5r34bypfl53hx8kibakzqw7fc-gnused-4.7.drv': woken up
building of '/nix/store/xr4aygslk3lqdz9wnsq04vpbm4v68vk5-glibc-locales-2.27.drv': created
building of '/nix/store/xr4aygslk3lqdz9wnsq04vpbm4v68vk5-glibc-locales-2.27.drv': woken up
building of '/nix/store/m3dzp25n0g4fwlygdhvak1kk8xz906n9-bash-4.4-p23.drv': init
building of '/nix/store/m3dzp25n0g4fwlygdhvak1kk8xz906n9-bash-4.4-p23.drv': loading derivation
acquiring write lock on '/nix/var/nix/temproots/21932'
downgrading to read lock on '/nix/var/nix/temproots/21932'
building of '/nix/store/m3dzp25n0g4fwlygdhvak1kk8xz906n9-bash-4.4-p23.drv': have derivation
acquiring write lock on '/nix/var/nix/temproots/21932'
downgrading to read lock on '/nix/var/nix/temproots/21932'
acquiring write lock on '/nix/var/nix/temproots/21932'
downgrading to read lock on '/nix/var/nix/temproots/21932'
acquiring write lock on '/nix/var/nix/temproots/21932'
downgrading to read lock on '/nix/var/nix/temproots/21932'
acquiring write lock on '/nix/var/nix/temproots/21932'
downgrading to read lock on '/nix/var/nix/temproots/21932'
acquiring write lock on '/nix/var/nix/temproots/21932'
downgrading to read lock on '/nix/var/nix/temproots/21932'

进程 nix-daemon 以 100% 的 CPU 时间运行。如果是sudo nix-build ...nix-build 进程本身以 100% 的 CPU 时间运行,永不终止。

其他人尝试重现并没有遇到问题。这可能与我的硬件有关。 See this reddit post with comments.

更多信息

  • 该问题仅出现在前端的包中,即由 ghcjs 编译的包。不过,日志输出并未指出任何与 ghcjs 相关的问题。
  • regex-tdfa 包不是问题,因为我现在也遇到了同样的问题,只是在一个更复杂的项目上构建方尖碑静态文件派生,并使用其他几个包。
  • 我在 NVME SSD 硬盘上运行 NixOS 20.09
  • ob run 命令始终有效,没有任何问题(我可以在开发模式下看到运行结果)
  • 我在obelisk 项目中发布了the issue,并在那里收集了有关该问题的一些详细信息。
  • 我在NixOS forums, here,上询问过这个问题,得到了一些提示

【问题讨论】:

  • Michael Litchard 的编辑:“不是 haskell 问题”:我只在使用 ghcjs 编译时遇到过这个问题。我认为这与 nix 的工作方式有关,但我真的不知道问题出在哪里。

标签: nix nixos


【解决方案1】:

我转移到传统硬盘驱动器,问题就消失了。当然,如何在 nvme 上避免这个问题,一个实际的解决方案会很好。

编辑:硬盘驱动器从来都不是问题。锁定问题显然已经在这个提交的某个地方默默地解决了:https://github.com/flyingcircusio/nixpkgs/commit/ac60476ed94fd5424d9f3410c438825f793a8cbb

【讨论】:

    猜你喜欢
    • 2013-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 2016-04-16
    • 2019-04-28
    • 1970-01-01
    • 2012-04-04
    相关资源
    最近更新 更多