Skip to content

Segfault on OS X in interpreted code

I'm getting reproducable segfaults/GC panics when doing the following:

$ ghci -package ghc Scion/Config.hs 
GHCi, version 7.0.2: http://www.haskell.org/ghc/  :? for help
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package array-0.3.0.2 ... linking ... done.
Loading package containers-0.4.0.0 ... linking ... done.
Loading package filepath-1.2.0.0 ... linking ... done.
Loading package old-locale-1.0.0.2 ... linking ... done.
Loading package old-time-1.0.0.6 ... linking ... done.
Loading package unix-2.4.2.0 ... linking ... done.
Loading package directory-1.1.0.0 ... linking ... done.
Loading package pretty-1.0.1.2 ... linking ... done.
Loading package process-1.0.1.5 ... linking ... done.
Loading package Cabal-1.10.1.0 ... linking ... done.
Loading package bytestring-0.9.1.10 ... linking ... done.
Loading package ghc-binary-0.5.0.2 ... linking ... done.
Loading package bin-package-db-0.0.0.0 ... linking ... done.
Loading package hpc-0.5.0.6 ... linking ... done.
Loading package template-haskell ... linking ... done.
Loading package ghc-7.0.2 ... linking ... done.
Loading package ffi-1.0 ... linking ... done.
[1 of 6] Compiling Scion.Types.ExtraInstances ( Scion/Types/ExtraInstances.hs, interpreted )
[2 of 6] Compiling Scion.Types.Notes ( Scion/Types/Notes.hs, interpreted )
[3 of 6] Compiling Scion.Types.DefinitionSites ( Scion/Types/DefinitionSites.hs, interpreted )
[4 of 6] Compiling Scion.Types.Session ( Scion/Types/Session.hs, interpreted )
[5 of 6] Compiling Scion.Types      ( Scion/Types.hs, interpreted )
[6 of 6] Compiling Scion.Config     ( Scion/Config.hs, interpreted )
Ok, modules loaded: Scion.Config, Scion.Types, Scion.Types.Session, Scion.Types.Notes, Scion.Types.DefinitionSites, Scion.Types.ExtraInstances.
*Scion.Config> test_config 
Loading package time-1.2.0.3 ... linking ... done.
Loading package attoparsec-0.8.5.0 ... linking ... done.
Loading package deepseq-1.1.0.2 ... linking ... done.
Loading package text-0.11.0.5 ... linking ... done.
Loading package blaze-builder-0.3.0.0 ... linking ... done.
Loading package binary-0.5.0.2 ... linking ... done.
Loading package bytestring-show-0.3.4 ... linking ... done.
Loading package hashable-1.1.1.0 ... linking ... done.
Loading package transformers-0.2.2.0 ... linking ... done.
Loading package mtl-2.0.1.0 ... linking ... done.
Loading package monads-fd-0.2.0.0 ... linking ... done.
Loading package syb-0.3 ... linking ... done.
Loading package unordered-containers-0.1.2.0 ... linking ... done.
Loading package primitive-0.3.1 ... linking ... done.
Loading package vector-0.7.0.1 ... linking ... done.
Loading package aeson-0.3.2.1 ... linking ... done.
Loading package multiset-0.2.1 ... linking ... done.
key "filename" not present
*Scion.Config> ghc: internal error: evacuate: strange closure type 1085528
    (GHC version 7.0.2 for x86_64_apple_darwin)
    Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
Abort trap

After running test_config it takes a few seconds for the panic to occur. If I compile the first five files, the panic seems to disappear, so my guess it is some problem with interpreted code:

$ ghc --make -package ghc Scion.Types
...
$ ghci -package ghc Scion/Config.hs
*Scion.Config> test_config
-- no segfault
*Scion.Config> :q
Leaving GHCi.

$ rm Scion/Types.hi
$ rm Scion/Types.o
$ ghci -package ghc Scion/Config.hs
*Scion.Config> test_config
... (loading packages) ...
*Scion.Config> ghc: internal error: evacuate: strange closure type 66664
    (GHC version 7.0.2 for x86_64_apple_darwin)
    Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
Abort trap

I attached the source files. You'll need additional packages, though. See the full output above for which ones these are.

Trac metadata
Trac field Value
Version 7.0.3
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information