Opened 9 years ago

Closed 9 years ago

Last modified 9 years ago

#4021 closed bug (fixed)

Problem of Interaction Between the FreeBSD Kernel and the GHC RTS

Reported by: pgj Owned by: pgj
Priority: normal Milestone: 7.0.1
Component: Runtime System Version: 6.13
Keywords: threading, exceptions, pthreads, FreeBSD Cc:
Operating System: FreeBSD Architecture: Unknown/Multiple
Type of failure: Runtime performance bug Test Case: throwto003
Blocked By: Blocking:
Related Tickets: Differential Rev(s):
Wiki Page:


There is a process (throwto003, test 173) during running gmake -C testsuite/tests/ghc-regress BINDIST=YES on FreeBSD which eats up all the available memory in the system and then killed by the kernel.

Excerpt from the log of testsuite:

cd ./concurrent/should_run && ./throwto003 +RTS -N2 -ls -RTS </dev/null > 2>
Wrong exit code (expected 0 , actual 1 )
throwto003: out of memory (requested 1048576 bytes)
*** unexpected failure for throwto003(threaded2)

Note that it works as expected when using WAY=normal or WAY=threaded1. It means that the -O flag may cause the problem. It appears on both x86 and x86_64. The log was generated on an Intel(R) Core(TM)2 Quad CPU Q8400 @ 2.66GHz, inside a chroot(2) environment with a vanilla 8-STABLE kernel (as of February 17, 2010) and 8.0-RELEASE userland.

Change History (4)

comment:1 Changed 9 years ago by pgj

Status: newassigned

Over to me.

comment:2 Changed 9 years ago by igloo

Milestone: 6.12.3

comment:3 Changed 9 years ago by simonmar

Resolution: fixed
Status: newclosed


Wed May  5 12:47:46 BST 2010  Simon Marlow <>
  * add a MAYBE_GC() in killThread#, fixes throwto003(threaded2) looping

comment:4 Changed 9 years ago by simonmar


milestone 6.14.1, I don't think this is an issue with 6.12.3, but feel free to correct me if I'm wrong.

Note: See TracTickets for help on using tickets.