Skip to content

ghc segfaults when compiling bytestring001

With the bytestring001 test in the testsuite:

$ ls bytestring001.*
bytestring001.hs  bytestring001.stdout
% /home/ian/ghc/darcs/full/ghc/stage2-inplace/ghc -fforce-recomp -o bytestring001 bytestring001.hs -O -fasm -package bytestring -package QuickCheck
/home/ian/ghc/darcs/full/ghc/stage2-inplace/ghc: line 2: 22336 Segmentation fault      /home/ian/ghc/darcs/full/ghc/stage2-inplace/libexec/ghc -B/home/ian/ghc/darcs/full/inplace-datadir/. -dynload wrapped ${1+"$@"}

That's with the threaded RTS. threaded-debug also segfaults. debug-only gets an Illegal instruction. "+RTS -DS" doesn't spot any problems.

Running the debug-only GHC in gdb, I get a segfault in stg_sel_ret_0_upd_info.

Doing so again with "+RTS -DS" I got:

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 139962880329440 (LWP 16207)]
0x000000000132a819 in LOOKS_LIKE_INFO_PTR_NOT_NULL (p=12297829382473034410)
    at ../includes/Storage.h:598
598         return info->type != INVALID_OBJECT && info->type < N_CLOSURE_TYPES;
(gdb) p info
$1 = (StgInfoTable *) 0xaaaaaaaaaaaaaa9a
(gdb) p &info
$2 = (StgInfoTable **) 0x7fffadd7abb8
(gdb) p4 0x7fffadd7abb0
0x7fffadd7abc8: 0x132a7e8 <LOOKS_LIKE_INFO_PTR+39>
0x7fffadd7abc0: 0x7fffadd7abe0
0x7fffadd7abb8: 0xaaaaaaaaaaaaaa9a
0x7fffadd7abb0: 0x7fffadd7ac00

so it looks like some unaligned writing has gone on at some point.

The above is all amd64/Linux.

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