You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Fix a hole in 5.0.2's read_body: the up-front buffer reservation came from
the untrusted Content-Length (capped at 1 GiB per download), and a failed
reservation aborted the process, which the new allocator can turn into a
crash under RLIMIT_AS or strict overcommit. It now reserves at most
256 MiB, and falls back to Response::bytes() if even that fails.
The allocator is behind a default-on large-block-alloc cargo feature and
now requires Linux with glibc (it was only ever measured there; musl wheels
are unaffected). A Rust crate that depends on arrowbricks_core with its
own global allocator can opt out with default-features = false.
Tests: a check that fails if the allocator is removed or mis-gated, read_body
with and without Content-Length and with a short body, the Thrift inline
LZ4 path with a zero-content frame, and import arrowbricks not loading asyncio (plus deferred submodules on 3.15).
AGENTS.md and rust/.../alloc.rs: // SAFETY: comments with a lint to keep
them, and design-invariant entries for the allocator, read_body and the
lazy-import rule; the LZ4-loop entry now points at lz4_frame_decode_into.
Removed the claim in 5.0.0 that the 3.15 suite passes with -W error: four
tests fail intermittently under it from unclosed mock-server sockets.