A saturated pool told every uploader its file was broken

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 Author
Bassam Ismail
Files count
0
Patches count
1