GCWing / GCWing/OpenBitFun

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

Closed Beginner friendly
#2,569 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Rust
Stars
2.3k
Forks
231
Avg merge
2h 49m
Merged PRs (30d)
589

Description

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.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in src/apps/cli/src/peer_host/state.rs at the three reported symbols and inspect the four named tests that exclusively exercise drain_session_turns. Verify the remaining peer-turn tests still cover live functionality, then run the peer_host test suite and a full build or CI-equivalent check. Done means the obsolete symbols and tests are removed without dead-code warnings or regressions.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
cli, tooling
Issue type
Refactor
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
86/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.