From ec99008282792b1bd2c6f02f4f0723d3458530da Mon Sep 17 00:00:00 2001 From: Matthew Jackson Date: Sun, 10 May 2026 22:20:44 -0700 Subject: [PATCH] disc/patch: relabel "possible wedge" heuristic log to avoid confusion MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The 'All probes failed — possible wedge condition' log fired during patch probing whenever 10+ consecutive failures hit AND a probe sweep at the local zone returned 0 successes. This was distinct from the read_error.rs 'wedge_transition' log that fires when the SCSI sense family ACTUALLY flips into Hardware/IllegalRequest fast-fail mode. Two logs both saying 'wedge' caused operator confusion during the 2026-05-11 Dune Pt 2 wedge investigation — was the drive wedged, or was it just a zone of fully-bad sectors? They mean different things. Relabel to 'patch_zone_fully_bad' with explicit pointer to read_error.rs for the canonical wedge detection. Same triggering condition; just clearer wording in the log stream. --- src/disc/mod.rs | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/disc/mod.rs b/src/disc/mod.rs index e695ff1..88d21ed 100644 --- a/src/disc/mod.rs +++ b/src/disc/mod.rs @@ -3049,13 +3049,23 @@ impl Disc { "Drive responsive — bad sector cluster, not wedged" ); } else if probes_ok == 0 && consecutive_failures >= 10 { + // Heuristic suspicion of wedge — NOT the + // confirmed wedge_transition log that fires + // when the SCSI sense family flips into + // Hardware/IllegalRequest. This log just + // says "the local zone is fully bad" which + // could mean a real wedge OR a fully-bad + // cluster on a non-wedged drive. The + // wedge_skip handler in read_error.rs is + // what actually decides + acts. tracing::warn!( target: "freemkv::disc", - phase = "patch_potential_wedge", + phase = "patch_zone_fully_bad", consecutive_failures, lba, range_idx, - "All probes failed — possible wedge condition" + "patch zone fully bad (10+ failures, all probes failed); \ + not a wedge unless read_error.rs's wedge_transition also fires" ); } }