[GHC] #11776: RTS segfaults when printing profiling information which refers to unloaded objects

GHC ghc-devs at haskell.org
Wed Mar 30 20:57:10 UTC 2016


#11776: RTS segfaults when printing profiling information which refers to unloaded
objects
-------------------------------------+-------------------------------------
           Reporter:  afarmer        |             Owner:  afarmer
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:
          Component:  Runtime        |           Version:  7.10.3
  System (Linker)                    |
           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:
-------------------------------------+-------------------------------------
 Running a profiled binary which loads/unloads objects via the RTS's linker
 results in a CCS tree with pointers to the shared objects. These
 references are not checked by checkUnload before unloading the object.
 Then, when the profiling report is printed at the end of the program, a
 segfault occurs.

 Plan:

 1. Add a test case for this.
 2. Modify checkUnload to prevent objects from being unloaded if the CCS
 tree points to them.
 3. Modify generateCCSReport to prune the CCS tree after a report is
 printed.
 4. Expose some way to generate a report on demand, so long-running
 programs don't keep every object loaded forever.

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


More information about the ghc-tickets mailing list