[GHC] #7653: incorrect handling of StackOverflow exception in the event manager
GHC
cvs-ghc at haskell.org
Mon Feb 25 17:25:14 CET 2013
#7653: incorrect handling of StackOverflow exception in the event manager
---------------------------------+------------------------------------------
Reporter: nus | Owner: tibbe
Type: bug | Status: patch
Priority: normal | Milestone:
Component: libraries/base | Version: 7.7
Keywords: | Os: Linux
Architecture: Unknown/Multiple | Failure: Runtime crash
Difficulty: Unknown | Testcase:
Blockedby: | Blocking:
Related: |
---------------------------------+------------------------------------------
Comment(by nus):
Replying to [comment:6 kazu-yamamoto]:
> First of all, I would like to discuss what is the best behavior when the
stack of IO manager overflows.
Perhaps the best would be not to cause stack overflows in the manager at
all. At least the shutdown should be as gracious as possible.
>
> Note that in the current parallel IO manager, timer manager and IO
managers are separated. We should apply this discussion to the timer
manager.
Sure, the bug report and the patches were made before the new I/O manager
merge. The code excerpts above that show how the thunk is accumulated are
now only pertinent to 7.4 and 7.6 branches.
While I'm not sure how (and if) the situation like this could be
reproduced on the current HEAD, the concerns might still be applicable:
1. There're no counterparts for `c_setIOManagerControlFd` and
`c_setIOManagerWakeupFd` of `newControl` in `closeControl`;
2. A situation might emerge (again, I'm not sure how, but still) when
`wakeManager` would be passed an `EventManager` in the `Finished` state.
>
> A comment to the first patch: even if we set manager's FD to -1, nobody
refers to it. What is the purpose of this patch?
The RTS does, please have a look at `ioManagerWakeup` in
`rts/posix/Signals.c` (and `wakeUpRts` in `rts/Schedule.c`).
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7653#comment:7>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list