Skip to content

[Bug]: dead_code warnings for peer-host session turn drain helpers with no production callers #2569

Description

@1688mengdie

Summary

The upstream CI logs for main report three dead-code warnings in the peer host turn tracker. Evidence from GitHub Actions run 33035362609 (reproduced across runs 33050974141 and 33047041028):

  • warning: method drain_session_turns is never used --> src/apps/cli/src/peer_host/state.rs:426:19
  • warning: function session_tree_keys is never used --> src/apps/cli/src/peer_host/state.rs:662:4
  • warning: function remove_completed_background_sources_for_session is never used --> src/apps/cli/src/peer_host/state.rs:737:4

Cross-checking the crate: PeerTurnTracker::drain_session_turns has zero non-test references, and session_tree_keys / remove_completed_background_sources_for_session are called only by drain_session_turns itself and by tests that exclusively exercise it. Four unit tests exist solely to exercise drain_session_turns.

Root Cause Analysis

  • After the upstream transactional session rollback rework, session-level turn cleanup moved into the Agent Runtime rollback path. The old session-scoped drain entry point on PeerTurnTracker lost all production callers, and its two private helpers plus the four tests that only exercise it became dead weight.
  • rustc therefore reports all three symbols as dead code on every full CI run of main (runs 33035362609 / 33050974141 / 33047041028).

Proposed Fix

Delete the three dead symbols (drain_session_turns, session_tree_keys, remove_completed_background_sources_for_session) together with the four tests that exclusively exercise drain_session_turns:

  • draining_a_parent_session_after_root_completion_returns_the_active_child_only
  • draining_a_child_session_releases_its_early_follow_up_reservation
  • draining_a_sibling_child_does_not_release_another_childs_reservation
  • explicit_drains_quarantine_removed_turn_ids

Live peer-turn functionality (PeerTurnDrain, interrupt_event_stream, drain_peer_turns, peer_turns_for_cancellation, and the remaining 70+ peer_host tests) is untouched. No #[allow(dead_code)] suppression is involved.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions