A bug of multicore IO manager
Johan Tibell
johan.tibell at gmail.com
Tue Sep 3 23:57:07 CEST 2013
Hi Kazu,
On Tue, Sep 3, 2013 at 2:52 PM, Kazu Yamamoto <kazu at iij.ad.jp> wrote:
> Hi,
>
> As I said before, I started running HTTP server using Mio in the real
> world. Unfortunately, the daemon is not stable.
>
> After one day or so, the server cannot accept any HTTP requests. No
> error messages from the server.
>
> The server is alive. To terminate the server (running in a "screen"
> terminal), single Ctrl-c is not enough. Typing Ctrl-c again terminates
> the server.
>
Could you run an strace on the process in this state so we can get an idea
what it's doing?
> After several tests, I'm getting convinced that this occurs only when
> +RTS -N<x> is specified (where <x> >= 2). The server runs well if +RTS
> -N<x> is not specified.
>
That indicates that the problem is with the threaded RTS and perhaps with
the IO manager.
> My question: if the program complied with GHC needs double Ctrl-c to
> terminate, what is the situation of the program?
>
If Ctrl+C generates an exception (does it?) there could be an overzealous
exception catcher somewhere that catches all exceptions, including your
Ctrl+C.
>
> P.S.
>
> It seems to me that the server also is leaking space. The server is
> getting fatter gradually.
Could you use the profiler to see what type of objects are leaking?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20130903/6e469be1/attachment.htm>
More information about the ghc-devs
mailing list