[GHC] #15774: SIGKILL only reports backtrace for one capability

#15774: SIGKILL only reports backtrace for one capability -------------------------------------+------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.8.1 Component: Runtime | Version: 8.6.1 System | Keywords: | Operating System: Unknown/Multiple Architecture: | Type of failure: None/Unknown Unknown/Multiple | Test Case: | Blocked By: Blocking: | Related Tickets: Differential Rev(s): | Wiki Page: -------------------------------------+------------------------------------- SIGKILL is intended to mirror the same signal's functionality provided by the JVM. That is, provide a snapshot of a processes' state in the form of backtraces on stderr. However, GHC's implementation currently only prints a backtrace for a single, arbitrary thread. This should be fixed. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15774 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#15774: SIGKILL only reports backtrace for one capability -------------------------------------+------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.8.1 Component: Runtime System | Version: 8.6.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by bgamari): There is the question of what the precise semantics of SIGKILL should be. Should we dump the state of all threads, all schedulable threads, or only currently scheduled threads? My feeling is the latter. This isn't entirely trivial to implement, especially given that we need to ensure that the output is readable (e.g. prevent interleaving of output from different capabilities). One option would be to add a new Message variety which can be used to request a backtrace from a capability. The thread handling the SIGKILL could then send this message to each capability and wait for their replies and print the result. This sounds complex for a debugging feature, however. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15774#comment:1 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#15774: SIGKILL only reports backtrace for one capability -------------------------------------+------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.8.1 Component: Runtime System | Version: 8.6.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by lelf): Surely you meant SIGQUIT -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15774#comment:2 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#15774: SIGQUIT only reports backtrace for one capability -------------------------------------+------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.8.1 Component: Runtime System | Version: 8.6.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Description changed by bgamari: Old description:
SIGKILL is intended to mirror the same signal's functionality provided by the JVM. That is, provide a snapshot of a processes' state in the form of backtraces on stderr. However, GHC's implementation currently only prints a backtrace for a single, arbitrary thread. This should be fixed.
New description: SIGQUIT is intended to mirror the same signal's functionality provided by the JVM. That is, provide a snapshot of a processes' state in the form of backtraces on stderr. However, GHC's implementation currently only prints a backtrace for a single, arbitrary thread. This should be fixed. -- -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15774#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler

#15774: SIGQUIT only reports backtrace for one capability -------------------------------------+------------------------------------- Reporter: bgamari | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.8.1 Component: Runtime System | Version: 8.6.1 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by bgamari): Replying to [comment:2 lelf]:
Surely you meant SIGQUIT
Indeed I did. Fixed. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15774#comment:4 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler
participants (1)
-
GHC