aio-libs
aiohttp
Blog
Docs
Changelog
Blog
Docs
Changelog
Overview
Branches
Benchmarks
Runs
Performance History
Latest Results
Document the multipart_reader_cls constructor contract
multipart-max-size
4 minutes ago
Trim test comments to one line each
ws_tail_bound
23 minutes ago
Use the shared resume helper in resume_reading() It still inlined the transport-resume try/except that _resume_transport_reading() now owns, eight lines below it, along with a _reading_paused = False that could only run when the flag was already False. The helper rechecks the flag itself, so the guard reduces to the buffer hook. Also stop THREAT_MODEL 3.16 claiming the pre-parser pause is always lifted; only set_parser() and set_response_params() drain that buffer.
ws_tail_bound
1 hour ago
Assert only after the synchronisation point
ws_tail_bound
2 hours ago
Document what the multipart drain skips release() and the automatic drain of a skipped part bypass next(), so neither the part cap nor subclass overrides of next() apply there.
multipart-max-size
2 hours ago
Make the functional test exercise the held tail pause
ws_tail_bound
2 hours ago
Resume reading once the parser has failed A peer can push past read_bufsize before set_parser() installs the reader and then send a bad frame. The tail pause taken for that burst was never lifted, because the resume guard could not tell "no parser yet" from "parser failed". Reading stayed off, so the discard branch never ran and the peer's FIN never arrived: the fd leak this was meant to avoid. Only stay paused while the parser has yet to be installed. After a failure the discard branch keeps the tail empty, so there is nothing to refill it and reading is safe to resume.
ws_tail_bound
3 hours ago
Discard data after a WebSocket protocol error instead of closing Closing the transport broke the Autobahn client run: a valid frame that arrives in the same read as the bad one is still delivered, and an echo client answering it hit "Cannot write to closing transport". Pausing was no better, since a paused transport never sees the peer's FIN and the socket leaks. Drop what arrives after the error instead. Nothing can parse it, memory stays flat, the transport stays writable so queued messages can still be answered, and a close from the peer is still delivered. close_code keeps reporting the protocol code, now pinned by test_recv_protocol_error.
ws_tail_bound
3 hours ago
Latest Branches
CodSpeed Performance Gauge
0%
Cap parts yielded by request.multipart() with client_max_fields
#13742
16 minutes ago
a1bcd5e
multipart-max-size
CodSpeed Performance Gauge
0%
Bound websocket client buffers a peer can fill
#13743
36 minutes ago
ff92e64
ws_tail_bound
CodSpeed Performance Gauge
0%
[PR #13738/8b010057 backport][3.15] Add client_max_fields option to Application
#13740
6 hours ago
b1bd57c
patchback/backports/3.15/8b0100572936df28977b9de8a6cc7e464c0b521e/pr-13738
© 2026 CodSpeed Technology
Home
Terms
Privacy
Docs