Skip to content

Fix sparse literal accounting in delta transfers#2156

Merged
oferchen merged 1 commit into
masterfrom
maintain-rsync-3.4.1-behavioral-parity
Nov 14, 2025
Merged

Fix sparse literal accounting in delta transfers#2156
oferchen merged 1 commit into
masterfrom
maintain-rsync-3.4.1-behavioral-parity

Conversation

@oferchen
Copy link
Copy Markdown
Owner

Summary

  • ensure sparse delta copies count all literal bytes instead of only the written subset
  • add a regression test that exercises a sparse delta update with zero-filled literals

Testing

  • cargo test -p engine execute_delta_with_sparse_counts_zero_literal_data

Codex Task

@oferchen oferchen merged commit 0d2e5a1 into master Nov 14, 2025
@oferchen oferchen deleted the maintain-rsync-3.4.1-behavioral-parity branch November 14, 2025 18:48
oferchen added a commit that referenced this pull request May 14, 2026
…ts (#4065)

Add a `RegisteredBufferStatus` enum (Enabled / Disabled /
RegistrationFailed { reason }) and surface it on `IoUringReader` and
`IoUringWriter` via `registered_buffer_status()`. Both writers and
readers route construction through a new
`RegisteredBufferGroup::try_new_with_status` helper that captures the
kernel's formatted errno on failure.

Previously, `Option<RegisteredBufferGroup>` collapsed two distinct
operator-visible cases - "caller opted out via
`IoUringConfig::register_buffers = false`" and "kernel rejected
registration (low RLIMIT_MEMLOCK, IORING_MAX_REG_BUFFERS exceeded,
seccomp, etc.)" - into the same `None`, leaving no signal to diagnose
why a transfer was using the unfixed `IORING_OP_READ` / `IORING_OP_WRITE`
fallback. The enum closes that observability gap. Mirrored stub on
non-Linux so cross-platform telemetry stays cfg-free.

Refs: oc-rsync #2156. Closes the open IU2 row in
`docs/audits/io-uring-fixed-buffer-invariants-audit.md`.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant