[GHC] #14758: Retainer profiler can overflow the C stack

GHC ghc-devs at haskell.org
Tue Oct 2 09:04:29 UTC 2018


#14758: Retainer profiler can overflow the C stack
-------------------------------------+-------------------------------------
        Reporter:  bgamari           |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Profiling         |              Version:  8.6.1
      Resolution:                    |             Keywords:  newcomer
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:  #15287            |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------
Changes (by osa1):

 * priority:  high => normal
 * keywords:   => newcomer
 * version:  8.4.1-alpha1 => 8.6.1


Comment:

 Just a status update: we discussed this a few weeks ago in a meeting. This
 is
 easy to fix, just replace recursive calls to `retainClosure` (directly or
 indirectly via `retainStack`) with stack pushes. For this we need to add
 new
 stack element types handle those in `retainClosure` (which is where we pop
 the
 stack). Not too hard to do. In the end we weren't sure that retainer
 profiler
 is too useful in practice, so we did not prioritize this (I'm updating the
 ticket priority now to reflect this).

 If you're using retainer profiler for anything useful and suffering from
 this
 bug, let us know.

 Also, this seems like a great newcomer ticket to me. The changes are only
 in
 one file (`RetainerProfile.c`) and you only need to know GHC heap object
 layout
 and some C. If anyone's interested in working on this let me know and I
 can
 give more detailed instructions.

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


More information about the ghc-tickets mailing list