#6167: Compile stalls with pause returning ERESTARTNOHAND ---------------------------------+------------------------------------------ Reporter: erikd | Owner: Type: bug | Status: new Priority: normal | Component: Compiler Version: 7.4.1 | Keywords: Os: Linux | Architecture: Unknown/Multiple Failure: Building GHC failed | Testcase: Blockedby: | Blocking: Related: | ---------------------------------+------------------------------------------ I'm using ghc 7.4.1 from the debian package to compile GHC from git HEAD on linux powerpc.
The build all seems to go fine until it reaches this: {{{ HC [stage 1] libraries/containers/dist-install/build/Data/Sequence.o }}} At which stage the compile stalls. By stalls, I mean the compiler seems to make no further progress and consumes less than 1% CPU and less than 1% memory. Killing the compile with Ctrl-C and running 'make' again and it stalls again in the same place. Doing a 'make clean' and starting again and it stall in the same place once more. The command that is being run at the stall is: {{{ /home/erikd/Git/ghc-upstream-git/inplace/lib/ghc-stage1 \ -B/home/erikd/Git/ghc-upstream-git/inplace/lib -H64m -O0 -fasm -package-name \ containers-0.5.0.0 -hide-all-packages -i -ilibraries/containers/. \ -ilibraries/containers/dist-install/build -ilibraries/containers/dist- install/build/autogen \ -Ilibraries/containers/dist-install/build -Ilibraries/containers/dist- install/build/autogen \ -Ilibraries/containers/include -optP-include \ -optPlibraries/containers/dist-install/build/autogen/cabal_macros.h -package array-0.3.0.3 \ -package base-4.5.0.0 -package deepseq-1.2.0.1 -package ghc- prim-0.2.0.0 -O2 -Wall -XHaskell98 \ -O0 -dcore-lint -no-user-package-db -rtsopts -odir libraries/containers/dist-install/build \ -hidir libraries/containers/dist-install/build -stubdir libraries/containers/dist-install/build \ -hisuf hi -osuf o -hcsuf hc -c libraries/containers/./Data/Sequence.hs -o \ libraries/containers/dist-install/build/Data/Sequence.o }}} If I run that under strace I find that at the stall its doing the following: {{{ rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0 pause() = ? ERESTARTNOHAND (To be restarted) --- SIGVTALRM (Virtual timer expired) @ 0 (0) --- sigreturn() = ? (mask now []) pause() = ? ERESTARTNOHAND (To be restarted) --- SIGVTALRM (Virtual timer expired) @ 0 (0) --- sigreturn() = ? (mask now []) pause() = ? ERESTARTNOHAND (To be restarted) --- SIGVTALRM (Virtual timer expired) @ 0 (0) --- sigreturn() = ? (mask now []) pause() = ? ERESTARTNOHAND (To be restarted) --- SIGVTALRM (Virtual timer expired) @ 0 (0) --- }}} A bit of googling tells me that ERESTARTNOHAND is supposedly a kernel level errno that is not supposed to escape into userland. See https://lkml.org/lkml/2011/12/23/117 Will continue the investigation. -- Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/6167> GHC <http://www.haskell.org/ghc/> The Glasgow Haskell Compiler _______________________________________________ Glasgow-haskell-bugs mailing list Glasgow-haskell-bugs@haskell.org http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs