在NixOS 20.09上,我在运行方尖碑项目时遇到了这个问题。例如,我执行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时间运行,永远不会终止。
其他人试图繁殖,但没有遇到问题。可能与我的硬件有关。请参阅这篇带有评论的reddit帖子。
更多信息
- 问题只发生在前端的包中,即由ghcjs编译的包。不过,日志输出并没有指向任何与ghcjs相关的问题
- 包
regex-tdfa
不是问题所在,因为我现在也遇到了同样的问题,只是在一个更复杂的项目上构建方尖碑静态文件派生,并使用其他几个包 - 我在NVME SSD硬盘上运行NixOS 20.09
ob run
命令始终有效,没有任何问题(我可以在开发模式中看到功能结果(- 我在
obelisk
项目中发布了这个问题,并收集了一些关于这个问题的详细信息 - 我在这里的NixOS论坛上询问了这个问题,并得到了一些提示
我换了一个传统的硬盘,问题就解决了。当然,对于如何避免nvme上的这个问题,一个实际的解决方案会很好。
编辑:硬盘从来都不是问题。锁定问题显然已经在这次提交的某个地方得到了无声的解决:https://github.com/flyingcircusio/nixpkgs/commit/ac60476ed94fd5424d9f3410c438825f793a8cbb