summary refs log tree commit diff
path: root/changelog.d/17439.bugfix
diff options
context:
space:
mode:
authorShay <hillerys@element.io>2024-07-16 03:13:55 -0700
committerGitHub <noreply@github.com>2024-07-16 11:13:55 +0100
commit429ecb7564640b4d04588173e9e54bf53524aadf (patch)
treecefec0cc83b6a1a57ae004f1b403fdb1fed01319 /changelog.d/17439.bugfix
parentBump setuptools from 67.6.0 to 70.0.0 (#17448) (diff)
downloadsynapse-429ecb7564640b4d04588173e9e54bf53524aadf.tar.xz
Handle remote download responses with `UNKNOWN_LENGTH` more gracefully (#17439)
Prior to this PR, remote downloads which did not provide a
`content-length` were decremented from the remote download ratelimiter
at the max allowable size, leading to excessive ratelimiting - see
https://github.com/element-hq/synapse/issues/17394.

This PR adds a linearizer to limit concurrent remote downloads to 6 per
IP address, and decrements remote downloads without a `content-length`
from the ratelimiter *after* the download is complete and the response
length is known.

Also adds logic to ensure that responses with a known length respect the
`max_download_size`.
Diffstat (limited to 'changelog.d/17439.bugfix')
-rw-r--r--changelog.d/17439.bugfix1
1 files changed, 1 insertions, 0 deletions
diff --git a/changelog.d/17439.bugfix b/changelog.d/17439.bugfix
new file mode 100644
index 0000000000..f36c3ec255
--- /dev/null
+++ b/changelog.d/17439.bugfix
@@ -0,0 +1 @@
+Limit concurrent remote downloads to 6 per IP address, and decrement remote downloads without a content-length from the ratelimiter after the download is complete.
\ No newline at end of file