v0.13.41: debug logging for sector-0 regression
This commit is contained in:
@@ -1,5 +1,12 @@
|
||||
# Changelog
|
||||
|
||||
## 0.13.41 (2026-04-29)
|
||||
|
||||
### Debug logging for sector-0 regression diagnosis
|
||||
|
||||
- Add debug logging to Drive::read and Disc::copy first reads.
|
||||
- No functional changes.
|
||||
|
||||
## 0.13.40 (2026-04-28)
|
||||
|
||||
### Pass 1 pure ECC-block sweep, transport-failure abort, mapfile-based recovery
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "libfreemkv"
|
||||
version = "0.13.40"
|
||||
version = "0.13.41"
|
||||
edition = "2024"
|
||||
rust-version = "1.86"
|
||||
license = "AGPL-3.0-only"
|
||||
|
||||
@@ -1338,6 +1338,20 @@ impl Disc {
|
||||
let block_count = (block_bytes / 2048) as u16;
|
||||
let recovery = !opts.skip_on_error;
|
||||
|
||||
if read_ok_count + read_err_count < 3 {
|
||||
tracing::info!(
|
||||
target: "freemkv::disc",
|
||||
block_lba,
|
||||
block_count,
|
||||
block_bytes,
|
||||
recovery,
|
||||
skip_on_error = opts.skip_on_error,
|
||||
batch,
|
||||
total_bytes,
|
||||
"Disc::copy first reads"
|
||||
);
|
||||
}
|
||||
|
||||
let read_result = reader.read_sectors(
|
||||
block_lba,
|
||||
block_count,
|
||||
|
||||
@@ -444,6 +444,14 @@ impl Drive {
|
||||
} else {
|
||||
crate::scsi::READ_TIMEOUT_MS
|
||||
};
|
||||
tracing::debug!(
|
||||
target: "freemkv::drive",
|
||||
lba,
|
||||
count,
|
||||
recovery,
|
||||
timeout_ms,
|
||||
"Drive::read enter"
|
||||
);
|
||||
let cdb = [
|
||||
crate::scsi::SCSI_READ_10,
|
||||
0x00,
|
||||
@@ -467,6 +475,14 @@ impl Drive {
|
||||
Err(Error::Halted) => Err(Error::Halted),
|
||||
Err(e) => {
|
||||
let (status, sense) = extract_scsi_context(&e);
|
||||
tracing::warn!(
|
||||
target: "freemkv::drive",
|
||||
lba,
|
||||
count,
|
||||
inner_error = %e,
|
||||
scsi_status = status,
|
||||
"Drive::read checked_exec failed"
|
||||
);
|
||||
Err(Error::DiscRead {
|
||||
sector: lba as u64,
|
||||
status: Some(status),
|
||||
|
||||
Reference in New Issue
Block a user