[Haskell-cafe] thread killed
tsuraan
tsuraan at gmail.com
Thu Apr 5 19:05:58 CEST 2012
>> I think I might know what your problem is. You're accepting file uploads
>> using handleMultipart, yes? Snap kills uploads that are going too slow,
>> otherwise you would be vulnerable to slowloris
>> (http://ha.ckers.org/slowloris/) DoS attacks. What's probably happening here
>> is that you're doing slow work inside the "Iteratee IO a" handler you pass
>> to that function, which makes Snap think the client is trickling bytes to
>> you. If that's the case, either finish the iteratee more quickly and do the
>> slow work back in the Snap handler (preferable), or disable the minimum
>> upload rate guard (although that's not recommended on a server talking to
>> the public internet.)
Ok, so I butchered Snap by replacing all of snap-server's killThread
calls with putStrLn calls, and the putStrLn that is triggered by
Snap.Internal.Http.Server.SimpleBackend's runSession (line 163 in
snap-server 0.8.0.1) seems to be the culprit. Is that a rate limiter,
or is that something else? Anyhow, I think there's a bug in there
somewhere. I'll be poking at it a bit more, but that seems to be the
top-level source of the errors.
More information about the Haskell-Cafe
mailing list