
#9296: Acquire all_tasks_mutex in forkProcess ------------------------------------+------------------------------------- Reporter: edsko | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.8.2 Keywords: | Operating System: Unknown/Multiple Architecture: Unknown/Multiple | Type of failure: None/Unknown Difficulty: Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | ------------------------------------+------------------------------------- In `forkProcess` we acquire a bunch of mutexes so make sure that when we fork the child doesn't see an inconsistent state of any global data structures. However, we do not acquire the `all_tasks_mutex`, which means that the child might have an inconsistent view of the `all_tasks` list. https://phabricator.haskell.org/D60 Sadly, I do not have a test case illustrating that this is in fact a problem. Found this while working tracking down a deadlock in forkProcess (https://ghc.haskell.org/trac/ghc/ticket/9295). -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/9296 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler