#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

Reply via email to