[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