[darcs-users] Error message

Simon Marlow marlowsd at gmail.com
Thu Jun 3 09:16:25 UTC 2010

On 02/06/2010 22:28, Eric Kow wrote:
> Hi Simon,
> I don't suppose the below is something you could comment on?
> On Thu, Jun 03, 2010 at 00:03:07 +0300, Dan Pascu wrote:
>> I got this error message from a cron job running darcs pull:
>> darcs: ioManagerWakeup: write: Bad file descriptor
>> Any idea what it means? It is not given every time. In fact I only
>> saw it once, while the cron job runs every 5 minutes.
> A Google and a grep of the GHC source led me to:
>    rts/posix/Signals.c:        if (r == -1) { sysErrorBelch("ioManagerWakeup: write"); }
> which made me think I should informally pass up for comment...

When a signal arrives, the RTS writes information about the signal into 
a pipe, which is connected to the IO manager thread - the Haskell thread 
responsible for starting Haskell signal handlers.  The error you got 
means that the pipe had been closed for some reason.

How are you invoking child processes, incendentally?  System.Process, or 
manually with System.Posix.forkProcess?  If the latter, I have a 
sneaking suspicion that we need to block signals across the fork(), or 
something like that.  We already do it for System.Process.


More information about the darcs-users mailing list