[GHC] #11830: Disabling idle GC leads to freeze

GHC ghc-devs at haskell.org
Sun May 1 21:55:56 UTC 2016


#11830: Disabling idle GC leads to freeze
-------------------------------------+-------------------------------------
        Reporter:  NeilMitchell      |                Owner:
            Type:  bug               |               Status:  patch
        Priority:  highest           |            Milestone:  8.2.1
       Component:  Runtime System    |              Version:  8.0.1-rc3
      Resolution:                    |             Keywords:
Operating System:  Linux             |         Architecture:
 Type of failure:  Incorrect result  |  Unknown/Multiple
  at runtime                         |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):  Phab:D2129
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by Ben Gamari <ben@…>):

 In [changeset:"16a51a6c2f265f8670355be03d42b773d93e0684/ghc"
 16a51a6c/ghc]:
 {{{
 #!CommitTicketReference repository="ghc"
 revision="16a51a6c2f265f8670355be03d42b773d93e0684"
 rts: Close livelock window due to rapid ticker enable/disable

 This fixes #11830, where the RTS would livelock if run with `-I0` due
 to a regression introduced by bbdc52f3a6e6a28e209fb8f65699121d4ef3a4e3.
 The reason for this is that the new codepath introduced a subtle race
 condition:

  1. one thread could request that the ticker stop and would block until
     the ticker in fact stopped
  2. meanwhile, another thread could sneak in and restart the ticker

 this was implemented in such a way where thread (1) would end up
 blocked forever. The solution here is to simply not block. The worst
 that will happen is that timer fires again, but is ignored since the
 ticker is stopped.

 Test Plan:
 Validate, try reproduction case in #11830. Need to find a nice
 testcase.

 Reviewers: simonmar, erikd, hsyl20, austin

 Reviewed By: erikd, hsyl20

 Subscribers: erikd, thomie

 Differential Revision: https://phabricator.haskell.org/D2129

 GHC Trac Issues: #11830
 }}}

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


More information about the ghc-tickets mailing list