[GHC] #11181: Program hands forever in sched_yield() / yield() unless -N is limited

#11181: Program hands forever in sched_yield() / yield() unless -N is limited ---------------------------------------+---------------------------------- Reporter: patrick_thomson | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.10.2 Keywords: | Operating System: Solaris Architecture: x86_64 (amd64) | Type of failure: Runtime crash Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: ---------------------------------------+---------------------------------- We have a web application executable that, when run with -N24 (on our 24-core machine) hangs indefinitely, taking up 100% CPU. Introspecting with strace reveals that it's stuck in {{{yield}}} (on native SmartOS) and {{{shed_yield}}} (on both SmartOS LX and Linux emulation with KVM). If we run with +RTS -N2 -RTS, we do not observe this behavior. Attached is the output of truss(1) on an instance of a hung process. Other possibly-relevant information: this is an instance of the Warp web server and the Snap framework. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11181 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11181: Program hands forever in sched_yield() / yield() unless -N is limited ------------------------------------+-------------------------------------- Reporter: patrick_thomson | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.10.2 Resolution: | Keywords: Operating System: Solaris | Architecture: x86_64 (amd64) Type of failure: Runtime crash | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ------------------------------------+-------------------------------------- Comment (by patrick_thomson): The trace was too lengthy to attach. Find it here: https://gist.github.com/patrickt/8c1e7a0587270d341350 -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11181#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11181: Program hangs forever in sched_yield() / yield() unless -N is limited ------------------------------------+-------------------------------------- Reporter: patrick_thomson | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.10.2 Resolution: | Keywords: Operating System: Solaris | Architecture: x86_64 (amd64) Type of failure: Runtime crash | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ------------------------------------+-------------------------------------- -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11181#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11181: Program hangs forever in sched_yield() / yield() unless -N is limited ------------------------------------+-------------------------------------- Reporter: patrick_thomson | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Runtime System | Version: 7.10.2 Resolution: | Keywords: Operating System: Solaris | Architecture: x86_64 (amd64) Type of failure: Runtime crash | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ------------------------------------+-------------------------------------- Changes (by thomie): * cc: simonmar (added) * component: Compiler => Runtime System Comment: Is this during shutdown by any chance? Maybe related to #10860. The output of `./your-program +RTS -Ds` could be useful, as well as a backtrace from gdb. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11181#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11181: Program hangs forever in sched_yield() / yield() unless -N is limited ------------------------------------+-------------------------------------- Reporter: patrick_thomson | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Runtime System | Version: 7.10.2 Resolution: | Keywords: Operating System: Solaris | Architecture: x86_64 (amd64) Type of failure: Runtime crash | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ------------------------------------+-------------------------------------- Comment (by patrick_thomson): @thomie Nope, this is during the initialization of the web server. I'm working on the backtraces/debug output now. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11181#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#11181: Program hangs forever in sched_yield() / yield() unless -N is limited ------------------------------------+-------------------------------------- Reporter: patrick_thomson | Owner: Type: bug | Status: new Priority: normal | Milestone: Component: Runtime System | Version: 7.10.2 Resolution: | Keywords: Operating System: Solaris | Architecture: x86_64 (amd64) Type of failure: Runtime crash | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ------------------------------------+-------------------------------------- Comment (by patrick_thomson): @thomie gdb says it's stuck in ioctl/epoll: https://gist.github.com/patrickt/7b358c533d832a8625aa -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11181#comment:5 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC