
#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