[GHC] #8303: defer StackOverflow exceptions (rather than dropping them) when exceptions are masked
GHC
ghc-devs at haskell.org
Sun Sep 15 02:38:12 CEST 2013
#8303: defer StackOverflow exceptions (rather than dropping them) when exceptions
are masked
------------------------------------+-------------------------------------
Reporter: rwbarton | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Runtime System | Version: 7.6.3
Keywords: | Operating System: Unknown/Multiple
Architecture: Unknown/Multiple | Type of failure: None/Unknown
Difficulty: Unknown | Test Case:
Blocked By: | Blocking:
Related Tickets: |
------------------------------------+-------------------------------------
See
http://www.reddit.com/r/haskell/comments/1luan1/strange_io_sequence_behaviour/
for a very simple program (`main'`) that accidentally evades the stack
size limit, running to completion even though it has allocated hundreds of
megabytes of stack chunks, and
[http://www.reddit.com/r/haskell/comments/1luan1/strange_io_sequence_behaviour/cc32ec4
my comment] for an explanation of this behavior.
ryani suggested that when a thread exceeds its stack limit but it is
currently blocking exceptions, the RTS shouldn't simply drop the
`StackOverflow` exception, but rather deliver it when the `mask` operation
completes. That sounds sensible to me and it would give a nice guarantee
that when any individual `mask` operation uses a small amount of stack,
the stack size limit is approximately enforced.
(I know that the default stack size limit may go away or essentially go
away, but it can still be nice when developing to use a small stack size
limit, so that one's system isn't run into the ground by infinite
recursion quickly gobbling up tons of memory.)
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8303>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list