[GHC] #5214: SIGSEGV in yieldCapability ()

GHC cvs-ghc at haskell.org
Tue May 24 20:00:39 CEST 2011


#5214: SIGSEGV  in yieldCapability ()
-------------------------------+--------------------------------------------
    Reporter:  j.waldmann      |       Owner:                
        Type:  bug             |      Status:  new           
    Priority:  normal          |   Component:  Runtime System
     Version:  7.0.3           |    Keywords:                
    Testcase:                  |   Blockedby:                
          Os:  Linux           |    Blocking:                
Architecture:  x86_64 (amd64)  |     Failure:  Runtime crash 
-------------------------------+--------------------------------------------

Comment(by j.waldmann):

 Here is the end of an strace of a run that leads to a crash:

 {{{
 ...
 sched_yield()                           = 0
 sched_yield()                           = 0
 sched_yield()                           = 0
 sched_yield()                           = 0
 sched_yield()                           = 0
 sched_yield()                           = 0
 sched_yield()                           = 0
 sched_yield()                           = 0
 sched_yield()                           = 0
 sched_yield()                           = 0
 sched_yield()                           = 0
 sched_yield()                           = 0
 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
 futex(0x19ee4fc, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19ee4f8, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x1a1826c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x1a18268, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19b381c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19b3818, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19edb2c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19edb28, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19edd4c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19edd48, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19edd78, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x1932a88, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x19ee35c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19ee358, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19ee388, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x1932e08, FUTEX_WAKE_PRIVATE, 1) = 1
 rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
 sched_yield()                           = 0
 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
 futex(0x19ee4fc, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19ee4f8, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x1a1826c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x1a18268, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19b381c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19b3818, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19edb2c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19edb28, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19edd4c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19edd48, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19edd78, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x1932a88, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x19ee35c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19ee358, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19ee388, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x1932e08, FUTEX_WAKE_PRIVATE, 1) = 1
 rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
 sched_yield()                           = 0
 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
 futex(0x19ee4fc, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19ee4f8, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x1a1826c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x1a18268, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19b381c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19b3818, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19edb2c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19edb28, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19edd4c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19edd48, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19edd78, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x1932a88, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x19ee35c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19ee358, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19ee388, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x1932e08, FUTEX_WAKE_PRIVATE, 1) = 1
 rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
 sched_yield()                           = 0
 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
 futex(0x19ee4fc, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19ee4f8, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x1a1826c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x1a18268, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19b381c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19b3818, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19edb2c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19edb28, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19edd4c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19edd48, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19edd78, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x1932a88, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x19ee35c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19ee358, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19ee388, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x1932e08, FUTEX_WAKE_PRIVATE, 1) = 1
 rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
 sched_yield()                           = 0
 sched_yield()                           = 0
 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
 futex(0x19ee4fc, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19ee4f8, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x1a1826c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x1a18268, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19b381c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19b3818, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19edb2c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19edb28, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19edd4c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19edd48, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19edd78, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x1932a88, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x19ee35c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19ee358, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19ee388, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x1932e08, FUTEX_WAKE_PRIVATE, 1) = 1
 rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
 sched_yield()                           = 0
 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
 futex(0x19ee4fc, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19ee4f8, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x1a1826c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x1a18268, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19b381c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19b3818, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19edb2c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19edb28, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19edd4c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19edd48, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19edd78, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x1932a88, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x19ee35c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19ee358, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19ee388, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x1932e08, FUTEX_WAKE_PRIVATE, 1) = 1
 rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
 sched_yield()                           = 0
 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
 futex(0x19ee4fc, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19ee4f8, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19ee528, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x19321c8, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x1a1826c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x1a18268, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19b381c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19b3818, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19edb2c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19edb28, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19edd4c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19edd48, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19edd78, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x1932a88, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x19ee35c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19ee358, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19ee388, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x1932e08, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x1a1850c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x1a18508, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x1a18538, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x1932548, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x19cd5ac, FUTEX_WAIT_PRIVATE, 3001, NULL) = 0
 futex(0x19cd5d8, FUTEX_WAKE_PRIVATE, 1) = 0
 futex(0x1a1826c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x1a18268, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19b381c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19b3818, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19edb2c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19edb28, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19edd4c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19edd48, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19edd78, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x1932a88, FUTEX_WAKE_PRIVATE, 1) = 1
 futex(0x19b3ffc, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19b3ff8, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 futex(0x19ee35c, FUTEX_WAKE_OP_PRIVATE, 1, 1, 0x19ee358, {FUTEX_OP_SET, 0,
 FUTEX_OP_CMP_GT, 1}) = 1
 --- SIGSEGV (Segmentation fault) @ 0 (0) ---
 +++ killed by SIGSEGV +++
 Segmentation fault
 }}}

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5214#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler



More information about the Glasgow-haskell-bugs mailing list