github GitoxideLabs/gitoxide gix-features-v0.49.0
gix-features v0.49.0

3 hours ago

Bug Fixes

  • report the error that caused in_parallel_with_slice() to stop
    Previously, when a consumer failed, worker threads were joined in
    thread-id order and the first error encountered was returned. Threads
    that merely noticed the stop signal can bail out with a reactive error
    like Interrupted though, and when such a thread had a lower id than
    the failing one, that reaction would mask the actual cause of the stop.

    Now the first consumer to fail owns the causal error, and it is
    preferred over reactive errors when the join results are collected.
    Causality is tracked on a flag private to the harness as consumers may
    set the exposed stop flag themselves before returning their error.

    This makes the error of Tree::traverse() in gix-pack deterministic,
    and with it the previously intermittent assertion on OutOfMemory in
    bundle::write_to_directory::respects_alloc_limit_bytes (#2701).

  • keep the underlying zlib error when decompression fails
    Previously, every decompression failure was flattened into the fixed
    "corrupt deflate stream" message, making a checksum failure
    indistinguishable from genuine bitstream corruption even though zlib
    knows the difference. As reported in #2703, this cost real debugging
    time downstream when a checksum bug in the aarch64 NEON path of
    zlib-rs made a valid pack look corrupted.

    Now Decompress exposes the message of the last error, and the inflate
    stream appends it, turning the error into something like
    "corrupt deflate stream: incorrect data check".

Chore (BREAKING)

  • remove zlib module in favor of standlone gix-zlib.
    This also removes the previously deprecated zlib-related features.

Commit Statistics

  • 14 commits contributed to the release.
  • 58 days passed between releases.
  • 3 commits were understood as conventional.
  • 1 unique issue was worked on: #2703

Commit Details

view details
  • #2703
    • Keep the underlying zlib error when decompression fails (9fbc21f)
  • Uncategorized
    • Update changelogs prior to release (cb6ec7d)
    • Release gix-trace v0.1.21, gix-validate v0.11.3, gix-path v0.12.3, gix-utils v0.3.5, gix-config-value v0.19.0, gix-prompt v0.16.0, gix-sec v0.14.2, gix-url v0.37.0, gix-credentials v0.39.0, safety bump 18 crates (f0ec710)
    • Merge pull request #2722 from GitoxideLabs/reasons (c16b5a1)
    • Replace lint allowances with expectations (43ff87a)
    • Merge pull request #2714 from GitoxideLabs/fix-credentials-parsing (cf3053a)
    • Release gix-path v0.12.2, gix-error v0.2.5, gix-utils v0.3.4, gix-date v0.15.6, gix-url v0.36.2, gix-credentials v0.38.2 (27aec47)
    • Merge pull request #2708 from nikicat/pr-parallel-causal-error (3c95dc6)
    • Review (4fe6250)
    • Report the error that caused in_parallel_with_slice() to stop (b0aea79)
    • Merge pull request #2707 from ameyypawar/fix/2703-inflate-error (6d95da6)
    • Remove zlib module in favor of standlone gix-zlib. (824bb93)
    • Review (c7197b9)
    • Merge pull request #2618 from GitoxideLabs/report (f7d4f33)

Don't miss a new gitoxide release

NewReleases is sending notifications on new releases.