[GHC] #7970: Thread GC frees roots before thread actually finishes

GHC ghc-devs at haskell.org
Sun Jul 21 00:27:35 CEST 2013


#7970: Thread GC frees roots before thread actually finishes
-------------------------------------+------------------------------------
        Reporter:  joeyadams         |            Owner:  simonmar
            Type:  bug               |           Status:  closed
        Priority:  high              |        Milestone:  7.8.1
       Component:  Runtime System    |          Version:  7.6.3
      Resolution:  fixed             |         Keywords:
Operating System:  Unknown/Multiple  |     Architecture:  Unknown/Multiple
 Type of failure:  Runtime crash     |       Difficulty:  Unknown
       Test Case:                    |       Blocked By:
        Blocking:                    |  Related Tickets:  7170
-------------------------------------+------------------------------------

Comment (by ezyang):

 Hey Simon, you added a test for this, but (1) it is not being run with the
 regular test suite, and (2) it is failing. I think you may have forgotten
 to check in the expected output.

 {{{
 commit 5bcf82fd981c9bfc0277d35a0d5d2db8d2f7d073
 Author: Simon Marlow <marlowsd at gmail.com>
 Date:   Tue Jul 2 11:27:20 2013 +0100

     Add test for #7970
 }}}

 There is also a mysterious ./tests/concurrent/should_run/.hpc.conc067
 which tagged along with that commit, which I do not know if it should be
 there; it seems unrelated.

 {{{
 =====> T7970(normal) 3084 of 3686 [0, 0, 0]
 cd ./concurrent/should_run && '/srv/code/ghc-build-sandbox/inplace/bin
 /ghc-stage2' -fforce-recomp -dcore-lint -dcmm-lint -dno-debug-output -no-
 user-package-db -rtsopts -fno-ghci-history -o T7970 T7970.hs
 >T7970.comp.stderr 2>&1
 cd ./concurrent/should_run && ./T7970    </dev/null >T7970.run.stdout
 2>T7970.run.stderr
 Actual stdout output differs from expected:
 --- /dev/null   2013-07-07 10:51:38.467280914 -0700
 +++ ./concurrent/should_run/T7970.run.stdout    2013-07-20
 15:22:26.355123844 -0700
 @@ -0,0 +1,4 @@
 +IORef still alive, and contains 'x'
 +caught exception: thread blocked indefinitely in an MVar operation
 +IORef still alive, and contains 'x'
 +'x'
 }}}

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




More information about the ghc-tickets mailing list