最近、rust等をpkg upgradeで更新しようとするとエラーで滅多に成功しなくなりました。
そのため、一旦pkg deleteしてから入れ直す等、いろいろやっているのですが、なかなか成功しません。ほとんど、途中でchmodに失敗してbad file descriptorで死んでしまいます。shell scriptで成功するまで無限ループで回しても1時間やった位では駄目です。あちこち検索した所、cpuを1個に限定することで成功する確率がかなり高くなるというのを見つけたのでやってみた所、やっと成功しました。以下のようにcpusetコマンドでcpuを1個だけ割り当てます。
# cpuset -l 0 pkg upgrade -r FreeBSD-latest rust
