[GHC] #14310: Assertion triggered by STM invariant.

GHC ghc-devs at haskell.org
Wed Oct 4 01:37:01 UTC 2017


#14310: Assertion triggered by STM invariant.
----------------------------------+--------------------------------------
        Reporter:  mbw            |                Owner:  (none)
            Type:  bug            |               Status:  new
        Priority:  high           |            Milestone:  8.4.1
       Component:  Compiler       |              Version:  8.2.1
      Resolution:                 |             Keywords:
Operating System:  Linux          |         Architecture:  x86_64 (amd64)
 Type of failure:  Runtime crash  |            Test Case:
      Blocked By:                 |             Blocking:
 Related Tickets:                 |  Differential Rev(s):
       Wiki Page:                 |
----------------------------------+--------------------------------------

Comment (by bgamari):

 If I compile without the debug RTS and run the test program in the same
 way, I find that the program isn't actually dead-locked. Rather it is
 live-locked with two threads apparently spinning against one another:
 {{{
 pthread_cond_wait@@GLIBC_2.3.2 () at
 ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
 185     in ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S
 >>> info threads
   Id   Target Id         Frame
 * 1    Thread 0x7f88ade01740 (LWP 4341) "Main"
 pthread_cond_wait@@GLIBC_2.3.2 () at
 ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
   2    Thread 0x7f88abec5700 (LWP 4342) "ghc_worker" 0x00007f88ac9650f3 in
 epoll_wait () at ../sysdeps/unix/syscall-template.S:84
   3    Thread 0x7f88ab6c4700 (LWP 4343) "ghc_ticker" 0x00007f88ad08b20d in
 read () at ../sysdeps/unix/syscall-template.S:84
   4    Thread 0x7f88aaec3700 (LWP 4344) "ghc_worker" 0x00007f88ac9650f3 in
 epoll_wait () at ../sysdeps/unix/syscall-template.S:84
   5    Thread 0x7f88aa6c2700 (LWP 4345) "ghc_worker" 0x00007f88ac95b6ad in
 poll () at ../sysdeps/unix/syscall-template.S:84
   6    Thread 0x7f88a9ec1700 (LWP 4346) "ghc_worker" 0x00000000004a3c21 in
 stg_atomically_frame_info ()
   7    Thread 0x7f88a96c0700 (LWP 4347) "ghc_worker" stmAbortTransaction
 (cap=0x4e01b0, trec=0x42000d2238) at rts/STM.c:1020
 >>> thread 6
 [Switching to thread 6 (Thread 0x7f88a9ec1700 (LWP 4346))]
 #0  0x00000000004a3c21 in stg_atomically_frame_info ()
 >>> bt
 #0  0x00000000004a3c21 in stg_atomically_frame_info ()
 #1  0x0000000000000000 in ?? ()
 >>> x/8a $rbp
 0x42002d7338:   0x4a3bb8 <stg_atomically_frame_info>    0x42002fd510
 0x42002d7348:   0x42001d56d8    0x4daed9
 0x42002d7358:   0x413bf0 <base_GHCziBase_zdfApplicativeIO2_info+64>
 0x42002fd538
 0x42002d7368:   0x49feb0 <stg_catch_frame_info> 0x0
 >>> thread 7
 [Switching to thread 7 (Thread 0x7f88a96c0700 (LWP 4347))]
 #0  stmAbortTransaction (cap=0x4e01b0, trec=0x42000d2238) at
 rts/STM.c:1020
 1020    rts/STM.c: No such file or directory.
 >>> bt
 #0  stmAbortTransaction (cap=0x4e01b0, trec=0x42000d2238) at
 rts/STM.c:1020
 #1  0x00000000004a3c14 in stg_atomically_frame_info ()
 #2  0x0000000000000000 in ?? ()
 >>> up
 #1  0x00000000004a3c14 in stg_atomically_frame_info ()
 >>> x/8a $rbp
 0x42002d54a0:   0x4a3bb8 <stg_atomically_frame_info>    0x420029d690
 0x42002d54b0:   0x42000d2218    0x4daed9
 0x42002d54c0:   0x413bf0 <base_GHCziBase_zdfApplicativeIO2_info+64>
 0x420029d6b8
 0x42002d54d0:   0x49feb0 <stg_catch_frame_info> 0x0
 >>>
 }}}

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


More information about the ghc-tickets mailing list