Home
Reading
Searching
Subscribe
Sponsors
Statistics
Posting
Contact
Spam
Lists
Links
About
Hosting
Filtering
Features Download
Marketing
Archives
FAQ
Blog
 
Gmane
From: tsuraan <tsuraan <at> gmail.com>
Subject: Re: thread killed
Newsgroups: gmane.comp.lang.haskell.cafe
Date: Thursday 5th April 2012 17:05:58 UTC (over 4 years ago)
>> 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.
 
CD: 26ms