[GHC] #367: Infinite loops can hang Concurrent Haskell

GHC ghc-devs at haskell.org
Fri Sep 11 00:36:21 UTC 2015


#367: Infinite loops can hang Concurrent Haskell
-------------------------------------+-------------------------------------
        Reporter:  simonpj           |                   Owner:  ezyang
            Type:  bug               |                  Status:  new
        Priority:  lowest            |               Milestone:  ⊥
       Component:  Compiler          |                 Version:  6.4.1
      Resolution:  None              |                Keywords:  scheduler
                                     |  allocation
Operating System:  Unknown/Multiple  |            Architecture:
                                     |  Unknown/Multiple
 Type of failure:  Incorrect result  |               Test Case:
  at runtime                         |  concurrent/should_run/T367,
                                     |  concurrent/should_run/T367_letnoescape
      Blocked By:                    |                Blocking:
 Related Tickets:                    |  Differential Revisions:
-------------------------------------+-------------------------------------

Comment (by fryguybob):

 I thought I had left a note here before, but it appears that I have not!
 In my work with hardware transactions we run into this when working with
 lots of cores on an STM red-black tree.  When some thread A performs a
 rotation while another thread B is searching through the rotated node
 thread B can enter a non-allocating infinite loop due to seeing an
 inconsistent view of memory.  I think that hardware transactions make this
 occur more frequently, but there is nothing about the STM that prevents
 this.  We always build with `-fno-omit-yields` now and do not see any
 issues.

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


More information about the ghc-tickets mailing list