remove (internal) references from public code

This commit is contained in:
MattJackson
2026-04-28 21:32:15 -07:00
parent 29491d6eaf
commit befe6ef69b
7 changed files with 11 additions and 12 deletions
+1 -1
View File
@@ -102,7 +102,7 @@ Recovery is layered above `Drive::read`, not inside it. Layer 1
Layer 3 (`DiscStream::fill_extents` adaptive batch sizer) handles in-loop Layer 3 (`DiscStream::fill_extents` adaptive batch sizer) handles in-loop
request-size adaptation. Inline recovery (gentle retry → SCSI reset → retry) request-size adaptation. Inline recovery (gentle retry → SCSI reset → retry)
was removed in 0.13.6 — see [`rip-recovery.md`](rip-recovery.md) and was removed in 0.13.6 — see [`rip-recovery.md`](rip-recovery.md) and
`(internal)/postmortems/2026-04-25-stop-wedge-and-zero-kbs.md`. the stop-wedge postmortem (2026-04-25).
--- ---
+1 -1
View File
@@ -67,7 +67,7 @@ Recovery is layered above `Drive::read`:
streak. streak.
Inline recovery (5× gentle retry → close + reset + reopen → 5× more) was Inline recovery (5× gentle retry → close + reset + reopen → 5× more) was
removed in 0.13.6. See `(internal)/postmortems/2026-04-25-stop-wedge-and-zero-kbs.md` removed in 0.13.6. See the stop-wedge postmortem (2026-04-25)
for rationale: the inline reset wedged drive firmware on the LG BU40N (Initio for rationale: the inline reset wedged drive firmware on the LG BU40N (Initio
USB-SATA bridge) without ever recovering a sector. See USB-SATA bridge) without ever recovering a sector. See
[`rip-recovery.md`](rip-recovery.md) for the full three-layer model. [`rip-recovery.md`](rip-recovery.md) for the full three-layer model.
+2 -2
View File
@@ -133,8 +133,8 @@ implement retry logic.
no eject cycle. The `recovery` flag controls only the per-CDB timeout no eject cycle. The `recovery` flag controls only the per-CDB timeout
(1.5 s vs. 30 s); on any failure it returns `Err(DiscRead)` immediately. (1.5 s vs. 30 s); on any failure it returns `Err(DiscRead)` immediately.
Inline recovery (5× gentle retry → close + SCSI reset + reopen → 5× more) Inline recovery (5× gentle retry → close + SCSI reset + reopen → 5× more)
was removed in 0.13.6. See `(internal)/postmortems/2026-04-25-stop-wedge-and-zero-kbs.md` was removed in 0.13.6. See the stop-wedge postmortem (2026-04-25) for rationale:
for rationale: the inline reset on the LG BU40N (Initio USB-SATA bridge) the inline reset on the LG BU40N (Initio USB-SATA bridge)
wedged drive firmware below the bridge without ever recovering a sector, wedged drive firmware below the bridge without ever recovering a sector,
and the gentle-retry phase produced long stretches of 0 KB/s with no and the gentle-retry phase produced long stretches of 0 KB/s with no
recoveries to show for it. Recovery responsibility is now layered: layer 1 recoveries to show for it. Recovery responsibility is now layered: layer 1
+1 -1
View File
@@ -433,7 +433,7 @@ impl Drive {
/// ///
/// Inline retry phases (5× gentle + reset+reopen + 5× more) were /// Inline retry phases (5× gentle + reset+reopen + 5× more) were
/// removed in 0.13.6. Per /// removed in 0.13.6. Per
/// `(internal)/postmortems/2026-04-25-stop-wedge-and-zero-kbs.md`, /// the stop-wedge postmortem (2026-04-25),
/// the inline reset on the LG BU40N (Initio bridge) wedged drive /// the inline reset on the LG BU40N (Initio bridge) wedged drive
/// firmware without ever recovering a sector. The remaining recovery /// firmware without ever recovering a sector. The remaining recovery
/// layers (Disc::patch multi-pass, DiscStream batch halving) do not /// layers (Disc::patch multi-pass, DiscStream batch halving) do not
+3 -3
View File
@@ -11,8 +11,8 @@
//! This matches what every reference project does: MakeMKV (8 s sync //! This matches what every reference project does: MakeMKV (8 s sync
//! ioctl), sg_dd (60 s sync ioctl), the kernel default for SCSI block //! ioctl), sg_dd (60 s sync ioctl), the kernel default for SCSI block
//! devices (30 s `/sys/.../timeout`). See //! devices (30 s `/sys/.../timeout`). See
//! `(internal)/docs/audits/2026-04-26-scsi-architecture-research.md` //! the SCSI architecture audit (2026-04-26) for the full primary-source
//! for the full primary-source audit. //! references.
//! //!
//! Pre-0.13.20 we ran an async `write() + poll(1.5s) + close-on-timeout + //! Pre-0.13.20 we ran an async `write() + poll(1.5s) + close-on-timeout +
//! bg reopen` pattern. That abandoned slow-but-alive commands faster than //! bg reopen` pattern. That abandoned slow-but-alive commands faster than
@@ -106,7 +106,7 @@ impl SgIoTransport {
/// STOP+START UNIT. Both escalations were tried in 0.13.00.13.5 /// STOP+START UNIT. Both escalations were tried in 0.13.00.13.5
/// against the LG BU40N (Initio USB-SATA bridge); both failed to /// against the LG BU40N (Initio USB-SATA bridge); both failed to
/// recover wedged drives and made the wedge worse — see /// recover wedged drives and made the wedge worse — see
/// `(internal)/postmortems/2026-04-25-bu40n-wedge-recovery.md`. /// the BU40N wedge recovery postmortem (2026-04-25).
fn open_error<T>(device: &Path) -> Result<T> { fn open_error<T>(device: &Path) -> Result<T> {
let err = std::io::Error::last_os_error(); let err = std::io::Error::last_os_error();
Err(if err.kind() == std::io::ErrorKind::PermissionDenied { Err(if err.kind() == std::io::ErrorKind::PermissionDenied {
+1 -1
View File
@@ -268,7 +268,7 @@ impl MacScsiTransport {
// `reset()` removed in 0.13.6 — see scsi/mod.rs for rationale. // `reset()` removed in 0.13.6 — see scsi/mod.rs for rationale.
// `try_recover()` removed in 0.13.20 — userspace handle-recovery on // `try_recover()` removed in 0.13.20 — userspace handle-recovery on
// task failure was the same anti-pattern stripped from Linux SG_IO // task failure was the same anti-pattern stripped from Linux SG_IO
// (see (internal)/docs/audits/2026-04-26-scsi-architecture-research.md). // (see internal architecture audit, 2026-04-26).
// Errors bubble up; caller decides whether to reopen the Drive. // Errors bubble up; caller decides whether to reopen the Drive.
} }
+2 -3
View File
@@ -56,9 +56,8 @@ pub(crate) const TUR_TIMEOUT_MS: u32 = 5_000;
/// ///
/// 10 s catches every legitimate slow read with comfortable margin and /// 10 s catches every legitimate slow read with comfortable margin and
/// short-circuits truly bad sectors at ~10 s rather than letting the /// short-circuits truly bad sectors at ~10 s rather than letting the
/// kernel mid-layer escalate for 30 s+. See run log in /// kernel mid-layer escalate for 30 s+. See the SCSI architecture audit
/// `(internal)/docs/TEST_PLAN.md` and the audit at /// (2026-04-26) for primary-source references.
/// `(internal)/docs/audits/2026-04-26-scsi-architecture-research.md`.
/// ///
/// Pre-0.13.21 this was 1.5 s, which forced the kernel mid-layer to /// Pre-0.13.21 this was 1.5 s, which forced the kernel mid-layer to
/// time out *normal* reads (cold-start often takes ~1.5 s) and run its /// time out *normal* reads (cold-start often takes ~1.5 s) and run its