[Haskell-cafe] thread killed

tsuraan tsuraan at gmail.com
Wed Apr 4 22:09:19 CEST 2012


> It's hard to rule Snap timeouts out; try building snap-core with the
> "-fdebug" flag and running your app with "DEBUG=1", you'll get a spew of
> debugging output from Snap on stderr.

Heh, that was quite a spew.  I normally get the exceptions tens of MB
into files that are hundreds of MB, and I sometimes don't get them at
all, so printing out the entire request body was a bit slow :)  After
commenting out some of the more talkative debug statements, I got the
exception to happen, and it looks generally like this:

[      16] killIfTooSlow: continue
[      16] rqBody iterator: continue
[      16] httpSession iteratee: continue
[      16] SimpleBackend.enumerate(13): got continue
[      16] SimpleBackend.enumerate(13): reading from socket
[      16] SimpleBackend.enumerate(13): got 8192 bytes from read end
[      16] SimpleBackend.enumerate(13): sending 8192 bytes to continuation
[      16] killIfTooSlow: continue
[      16] rqBody iterator: continue
[      16] httpSession iteratee: continue
[      16] SimpleBackend.enumerate(13): got continue
[      16] SimpleBackend.enumerate(13): reading from socket
[      16] SimpleBackend.enumerate(13): got 8192 bytes from read end
[      16] SimpleBackend.enumerate(13): sending 8192 bytes to continuation
[      16] killIfTooSlow: continue
[      16] rqBody iterator: continue
[      16] httpSession iteratee: continue
[      16] SimpleBackend.enumerate(13): got continue
[      16] SimpleBackend.enumerate(13): reading from socket
[      16] SimpleBackend.enumerate(13): got 1878 bytes from read end
[      16] SimpleBackend.enumerate(13): sending 1878 bytes to continuation
[      16] killIfTooSlow: continue
[      16] rqBody iterator: continue
[      16] rateLimit: caught thread killed
[      16] Snap.Http.Server.Config errorHandler:
[      16] During processing of request from 127.0.0.1:38088
< a bunch of headers snipped >
[      16] Server.httpSession: finished running user handler
[      16] Server.httpSession: handled, skipping request body
[      16] httpSession/skipToEof: BEGIN
[      16] httpSession/skipToEof: continue
[      16] Server.httpSession: request body skipped, sending response
[      16] sendResponse: whenEnum: enumerating bytes
[      16] countBytes writeEnd: BEGIN
[      16] writeEnd: BEGIN
[      16] writeEnd: continue
[      16] countBytes writeEnd: continue
[      16] SimpleBackend.writeOut(13): got chunk with 233 bytes
[      16] SimpleBackend.writeOut(13): wrote 233 bytes, last 10="ead killed"


So, I'm not sure what that means.  rateLimit caught the thread kill,
but I don't see anything snap-related that caused it.  That rateLimit
message is the rateLimit seeing an error, and not rateLimit causing
one, right?



More information about the Haskell-Cafe mailing list