Skip to content

fix: apply CRC wire format to reconnectable writer, re-send path, and test#540

Closed
claude-claude[bot] wants to merge 1 commit intonv2-tx-barrierfrom
claude/fix-22565745236
Closed

fix: apply CRC wire format to reconnectable writer, re-send path, and test#540
claude-claude[bot] wants to merge 1 commit intonv2-tx-barrierfrom
claude/fix-22565745236

Conversation

@claude-claude
Copy link
Contributor

@claude-claude claude-claude bot commented Mar 2, 2026

Auto-Fix for PR #539

Issues Fixed

  1. writer_loop_reconnectable missing CRC header — Sends [length][body] instead of [CRC][length][body], causing frame desync with the server on snapshot/clone reconnection path
  2. do_reconnect re-send missing CRC header — Same frame desync when re-sending pending requests after reconnection
  3. test_request_reader_exits_on_deserialize_failure missing CRC header — Test sends old wire format, causing it to test "message too large" instead of "deserialization failure"
  4. send_request_no_reply missing .with_checksum() — Fire-and-forget requests (forget/batch_forget) don't have payload-level checksum unlike regular requests
  5. Wire format documentation stale — Module docs in wire.rs still show old format

Changes

  • fuse-pipe/src/client/multiplexer.rs: Add CRC computation and header write to writer_loop_reconnectable and do_reconnect re-send path; add .with_checksum() to send_request_no_reply
  • fuse-pipe/src/server/pipelined.rs: Add CRC header to test_request_reader_exits_on_deserialize_failure
  • fuse-pipe/src/protocol/wire.rs: Update module-level documentation to show CRC-prefixed request format

Generated by Claude | Review Run

… test

The CRC header was added to the non-reconnectable writer_loop and server
request_reader, but was missing from:

1. writer_loop_reconnectable - sends [length][body] instead of [CRC][length][body]
2. do_reconnect re-send path - same issue when re-sending pending requests
3. test_request_reader_exits_on_deserialize_failure - tests old wire format
4. send_request_no_reply - missing .with_checksum() on WireRequest

Without these fixes, any system using reconnectable multiplexer (snapshot/clone
path) would have immediate frame desync with the server.

Also updates wire.rs module docs to document the new request wire format.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@ejc3
Copy link
Owner

ejc3 commented Mar 2, 2026

Will address in #539

@ejc3 ejc3 closed this Mar 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant