recovery: audit fixes — live at-risk excludes NonTried, latency-gated wedge, drop dead block counters
- Live located drilldown (sweep + patch progress snapshots) now excludes NonTried, matching the one-shot path. Including the unread remainder made main_at_risk_ms show ~full-movie at sweep start and melt to 0 as it progressed — unread is unknown, not damage. - Wedge abort now requires the failure to be FAST (< WEDGE_FASTFAIL_MS, 500ms) as well as wedge-family sense: a real uncorrectable sector on Hardware-error media spends ECC-recovery time before failing, so it no longer false-trips the fast-fail wedge abort. New regression test. - Removed the always-zero blocks_attempted/read_ok/read_failed/ unreadable_count from PatchOutcome + PatchLoopState (dead residue from the old grind loop; the HandlerScoreboard supersedes them) so the patch.done log no longer emits misleading zeros.
This commit is contained in:
@@ -2930,9 +2930,6 @@ impl Disc {
|
||||
tracing::info!(
|
||||
target: "freemkv::disc",
|
||||
phase = "patch_done",
|
||||
blocks_attempted = pr.blocks_attempted,
|
||||
blocks_read_ok = pr.blocks_read_ok,
|
||||
blocks_read_failed = pr.blocks_read_failed,
|
||||
bytes_recovered = pr.bytes_recovered_this_pass,
|
||||
halted = pr.halted,
|
||||
wedged_exit = pr.wedged_exit,
|
||||
@@ -3870,9 +3867,6 @@ pub struct PatchOutcome {
|
||||
pub bytes_pending: u64,
|
||||
pub bytes_recovered_this_pass: u64,
|
||||
pub halted: bool,
|
||||
pub blocks_attempted: u64,
|
||||
pub blocks_read_ok: u64,
|
||||
pub blocks_read_failed: u64,
|
||||
pub wedged_exit: bool,
|
||||
pub wedged_threshold: u64,
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user