
#15260: Xmobar crashes with segmentation fault ----------------------------------+-------------------------------------- Reporter: Voronwe | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: 8.8.1 Component: Compiler | Version: 8.5 Resolution: | Keywords: Operating System: Linux | Architecture: x86_64 (amd64) Type of failure: Runtime crash | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | ----------------------------------+-------------------------------------- Comment (by osa1): I was posting my updates to the Github thread but I think this is a better place for them so moving those here and post future updates here as well. Two interesting finds: - The segfault is very easy to trigger when I add `performMajorGC`s around xmobar's `nextEvent'`: {{{ diff --git a/src/XUtil.hsc b/src/XUtil.hsc index 9063147..97f4961 100644 --- a/src/XUtil.hsc +++ b/src/XUtil.hsc @@ -39,6 +39,7 @@ import Graphics.X11.Xlib.Extras import System.Mem.Weak ( addFinalizer ) import System.Posix.Types (Fd(..)) import System.IO +import System.Mem (performMajorGC) #if defined XFT || defined UTF8 # if __GLASGOW_HASKELL__ < 612 @@ -207,8 +208,9 @@ newWindow dpy scr rw (Rectangle x y w h) o = do nextEvent' :: Display -> XEventPtr -> IO () nextEvent' d p = do pend <- pending d + performMajorGC if pend /= 0 - then nextEvent d p + then nextEvent d p >> performMajorGC else do threadWaitRead (Fd fd) nextEvent' d p }}} - If I compile xmobar with `-O0` I can't reproduce the segfault. (by default it's compiled with `-O1`) -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15260#comment:9 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler