Segfaulting programs with GHC 6.4.1

John Goerzen jgoerzen at complete.org
Fri Oct 21 22:24:44 EDT 2005


Here's some more data.

I tried this program with three versions of GHC.

GHC 6.4 with forkIO: could not produce a segfault at all
GHC 6.4 with forkOS: rapid segfault (<30 sec)

GHC 6.4.1 with forkIO: segfault in <5 min
GHC 6.4.1 with forkOS: segfault in <1 min

GHC 6.5: same results as GHC 6.4.1

Now, I also obtained a backtrace from GHC 6.4 with forkOS.  Here's a
bit of it:

#0  0x080c2e3e in ForeignziCziString_zdwpeekCAString_info ()
#1  0xb7a9e868 in ?? ()
#2  0x00000020 in ?? ()
#3  0xb7ecb08c in _res () from /lib/tls/libc.so.6
#4  0xb7ad80ec in ?? ()
#5  0x00000004 in ?? ()
#6  0x016b0d36 in ?? ()
#7  0xb7ac3f9c in ?? ()
#8  0x93c0cef9 in ?? ()
#9  0x4359a1e1 in ?? ()
#10 0x000742d3 in ?? ()
#11 0x00000000 in ?? ()
....
#2021 0x00000000 in ?? ()
#2022 0xb7ed80a6 in __pthread_mutex_cond_lock () from /lib/tls/libpthread.so.0
#2023 0x080c2f4c in ForeignziCziString_zdwpeekCAString_info ()

now this is the first time something from pthread actually appeared,
which is interesting.

The code surrounding that CAString_info is:

0x080c2f44 <ForeignziCziString_zdwpeekCAString_info+356>:       and    %eax,(%eax)
0x080c2f46 <ForeignziCziString_zdwpeekCAString_info+358>:       add    %al,(%eax)
0x080c2f48 <ForeignziCziString_zdwpeekCAString_info+360>:       and    $0x0,%al
0x080c2f4a <ForeignziCziString_zdwpeekCAString_info+362>:       add    %al,(%eax)
0x080c2f4c <ForeignziCziString_zdwpeekCAString_info+364>:       movl   $0x80c2f10,0x0(%ebp)
0x080c2f53 <ForeignziCziString_zdwpeekCAString_info+371>:       jmp    *(%esi)
0x080c2f55 <ForeignziCziString_zdwpeekCAString_info+373>:       nop
0x080c2f56 <ForeignziCziString_zdwpeekCAString_info+374>:       nop

Hope this carries a clue somewhere.

-- John


More information about the Glasgow-haskell-users mailing list