-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Timeout requests to dandidav
that take too long to resolve
#20
Comments
dandidav
requests that take too longdandidav
that take too long to resolve
@yarikoptic Do you think this could help with the DoS problem? |
For the record, Heroku's recommendation regarding timeouts is:
|
That is what I am observing ATM when e.g. navigating to https://webdav.dandiarchive.org/dandisets/000026/draft/sub-I46/ses-SPIM/micr/ -- eventually heroku times out with and log
and before then dandidav going very busy asking those extra attributes on the assets in the folder e.g.
so, isn't that I might be not grasping what good the timeouts you mention would do for us. Feels like we need to solve problem of in efficient listing there + may be overall adding "paging" support to dandidav ? |
The idea is that dandidav would time out before Heroku. See the quote in my previous comment. In addition, when Heroku times out, nothing is communicated back to dandidav, so the server continues wasting resources on requests to the Archive. If dandidav had its own timeout for processing incoming requests, then timing out would (I believe) mean that Archive requests stop. |
ok, agree. Let's set timeout of 25 seconds or so. |
Timeout handling of incoming requests after 25 seconds
The CLI should have a
--timeout
option that takes an integer number of seconds. When specified, requests to the server that take more than that many seconds to complete should be timed out; when not specified, no timeout should be in effect.This can be done via either the
TimeoutLayer
middleware orServiceBuilder::timeout()
.The text was updated successfully, but these errors were encountered: