[GHC] #10080: Recusive IO actions crash with segmentation fault
GHC
ghc-devs at haskell.org
Wed Feb 11 15:26:16 UTC 2015
#10080: Recusive IO actions crash with segmentation fault
-------------------------------------+-------------------------------------
Reporter: nakal | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 7.8.3
Resolution: | Keywords:
Operating System: FreeBSD | Architecture: x86_64
Type of failure: Runtime crash | (amd64)
Blocked By: | Test Case:
Related Tickets: | Blocking:
| Differential Revisions:
-------------------------------------+-------------------------------------
Description changed by nakal:
Old description:
> I am learning Haskell and wrote a program that writes some strings to
> stdout infinitely by recursing in an IO action. It seems such a simple
> construct crashes on FreeBSD when Ctrl+C is pressed to interrupt it.
>
> I have been able to reduce it to a simple case like this:
>
> {{{#!hs
> main = do
> putStrLn "hello world"
> main
> }}}
>
> I compiled it with
> {{{
> ghc --make hello.hs
> }}}
>
> Then pressed Ctrl+C and immediately got:
> {{{
> [...]
> hello world
> hello world
> hello world
> hello world
> ^CSegmentation fault (core dumped)
> }}}
>
> Here is the backtrace of the crash:
>
> {{{
> (gdb) bt
> #0 0x000000000047cdd7 in generic_handler ()
> #1 0x000000080147c467 in swapcontext () from /lib/libthr.so.3
> #2 0x000000080147c062 in sigaction () from /lib/libthr.so.3
> #3 <signal handler called>
> #4 0x00000008017d7b7a in select () from /lib/libc.so.7
> #5 0x0000000801479b32 in select () from /lib/libthr.so.3
> #6 0x000000000043cb13 in fdReady ()
> #7 0x000000000044751c in base_GHCziIOziFD_zdwa3_info ()
> #8 0x0000000000000000 in ?? ()
> }}}
New description:
I am learning Haskell and wrote a program that writes some strings to
stdout infinitely by recursing in an IO action. It seems such a simple
construct crashes on FreeBSD when Ctrl+C is pressed to interrupt it.
I have been able to reduce it to a simple case like this:
{{{#!hs
main = do
putStrLn "hello world"
main
}}}
I compiled it with
{{{
ghc --make hello.hs
}}}
Ran it and then pressed Ctrl+C and immediately got:
{{{
[...]
hello world
hello world
hello world
hello world
^CSegmentation fault (core dumped)
}}}
Here is the backtrace of the crash:
{{{
(gdb) bt
#0 0x000000000047cdd7 in generic_handler ()
#1 0x000000080147c467 in swapcontext () from /lib/libthr.so.3
#2 0x000000080147c062 in sigaction () from /lib/libthr.so.3
#3 <signal handler called>
#4 0x00000008017d7b7a in select () from /lib/libc.so.7
#5 0x0000000801479b32 in select () from /lib/libthr.so.3
#6 0x000000000043cb13 in fdReady ()
#7 0x000000000044751c in base_GHCziIOziFD_zdwa3_info ()
#8 0x0000000000000000 in ?? ()
}}}
Operating system version is: FreeBSD 10.1-RELEASE-p5 (GENERIC)
--
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10080#comment:1>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list