v0.13.35: pause 3s after first MEDIUM ERROR before retry to prevent USB bridge crash

This commit is contained in:
MattJackson
2026-04-28 17:54:12 -07:00
parent 646c22ae93
commit e1a1f730be
2 changed files with 9 additions and 3 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
[package]
name = "libfreemkv"
version = "0.13.34"
version = "0.13.35"
edition = "2024"
rust-version = "1.86"
license = "AGPL-3.0-only"
+8 -2
View File
@@ -1441,10 +1441,16 @@ impl Disc {
if err.is_marginal_read()
|| err.scsi_sense().is_some_and(|s| s.is_medium_error())
{
// Disc-related error — try 1 sector instead
use_single = true;
consecutive_good = 0;
// Don't advance pos — retry this location at 1 sector
if err.scsi_sense().is_some_and(|s| s.is_medium_error())
&& opts
.halt
.as_ref()
.is_none_or(|h| !h.load(std::sync::atomic::Ordering::Relaxed))
{
std::thread::sleep(std::time::Duration::from_secs(3));
}
continue;
} else {
// Non-recoverable transport error — bail