Contribution Date
Contribution Project
Contribution Details
A saturated pool told every uploader its file was broken
Thirty of 2056 concurrent uploads came back 500, every one of them "pool timed out
while waiting for an open connection". A TUS client reads the status to decide
whether the file is still uploadable: 500 says the request is broken and must not
be repeated, so a well-behaved uploader drops a file the server would have taken a
second later.
The classifying lives in `dam_db::Error::is_capacity` rather than in the handler,
because the upload path is not the only surface that can be refused for it — every
`From` in `dam-api` currently answers a saturated pool with 500, and
this is the one that was measured saturating. Moving the rest over is a question of
which of them a client can usefully retry, not of how to tell.
503 carries `Retry-After: 1`. A second, not a minute: the pool frees as in-flight
requests finish, and a client told to wait a minute has turned a blip into a
stalled upload.
Contribution Issue Link
Files count
0
Patches count
1