ghc-pkg deadlocks on macOS
If I run this script on macOS, after about 15 minutes, a ghc-pkg process will deadlock.
#!/usr/bin/env bash
out=`pwd`/testing-package-db
rm -rf $out
cabal update
cabal install random
mkdir -p $out
ghc-pkg init $out/package.conf.d
while true; do
ghc-pkg --package-db $HOME/.ghc/x86_64-darwin-8.6.3/package.conf.d dump | ghc-pkg --force --package-db $out/package.conf.d register -
done
Output from sw_vers:
ProductName: Mac OS X
ProductVersion: 10.12.6
BuildVersion: 16G29
This GHC build comes from the latest nixpkgs-18.09. I have also attached a nix file to build test scripts.
We noticed that if we edited the ghc-pkg binary to link with the threaded RTS, then we could not reproduce the deadlock (after running the test script for 24 hours).
Attached is the output from /usr/bin/sample for the stuck process, and the otool -L ghc-pkg output.
Trac metadata
| Trac field | Value |
|---|---|
| Version | 8.6.3 |
| Type | Bug |
| TypeOfFailure | OtherFailure |
| Priority | normal |
| Resolution | Unresolved |
| Component | Runtime System |
| Test case | |
| Differential revisions | |
| BlockedBy | |
| Related | |
| Blocking | |
| CC | |
| Operating system | |
| Architecture |