gix-features v0.49.0
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
likeInterruptedthough, 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()ingix-packdeterministic,
and with it the previously intermittent assertion onOutOfMemoryin
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
Decompressexposes 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
zlibmodule in favor of standlonegix-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
zlibmodule in favor of standlonegix-zlib. (824bb93) - Review (c7197b9)
- Merge pull request #2618 from GitoxideLabs/report (f7d4f33)