Skip to content

arrowbricks v5.1.1

Choose a tag to compare

@github-actions github-actions released this 07 Oct 14:32
· 26 commits to main since this release
f5c5e1f
  • 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.
  • No API changes.