Skip to content

Clean up PUT direct-ack shortcut #2077

@sanity

Description

@sanity

Summary

The PUT pipeline currently emits a second SuccessfulPut directly to the operation originator (see PutOp::process_message in crates/core/src/operations/put.rs). This extra ACK works around the fact that the normal upstream response path can drop messages when transport tasks stall. Now that we're instrumenting and fixing the actual transport issue, this shortcut is both redundant and risky: it can hide missing responses and complicates reasoning about message delivery.

Why this matters

  • It papers over bugs higher up in the stack instead of fixing them.
  • We end up with duplicate SuccessfulPut logs that make debugging harder.
  • Long-term, it can mask regressions in transport or routing because the client still receives the direct ACK even if the main path is broken.

Proposal

  1. Remove the direct-send block inside PutOp::process_message (both the broadcast and final-hop cases).
  2. Audit tests to ensure they don't rely on the shortcut.
  3. Confirm that the standard upstream path is exercised by running the flaky PUT/connectivity tests with trace logging after the listener fix lands.

Tracking this cleanup separately keeps PR #2064 focused on stabilizing transport while ensuring we don’t carry the workaround forward.

Metadata

Metadata

Assignees

No one assigned

    Labels

    A-developer-xpArea: developer experienceA-networkingArea: Networking, ring protocol, peer discoveryE-mediumExperience needed to fix/implement: Medium / intermediateT-enhancementType: Improvement to existing functionality

    Type

    No type

    Projects

    Status

    Triage

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions