Skip to content

Report cdparanoia non-fatal errors and suspicious positions in the log - #701

Open
ajzrva-sys wants to merge 4 commits into
whipper-team:developfrom
ajzrva-sys:feature/cdparanoia-error-reporting
Open

ajzrva-sys wants to merge 4 commits into
whipper-team:developfrom
ajzrva-sys:feature/cdparanoia-error-reporting

Conversation

@ajzrva-sys

@ajzrva-sys ajzrva-sys commented Sep 18, 2026 •

Copy link
Copy Markdown

A rip can have matching test/copy CRCs while cdparanoia reports read problems. Those events currently don't appear in the rip log.

Record event counts and suspicious positions from both passes. Add them to the log and warn during ripping. Severe events set the health status to There were errors; corrections remain visible without changing that status.

The abort limit now counts severe callbacks as well as raw SCSI errors. It stops the read above 100 events.

Includes parser fixtures and log tests. The event classification and log format still need agreement, particularly for #492.

Addresses #88, #294 and #492.

Two classification details still need fixing: overlap callback values are window sizes, and raw SCSI retry messages alone do not prove lost audio.

Checked 3e252a5 on macOS arm64 / Python 3.11: 125 unit tests pass. No optical-drive test in this run.

Classify cdparanoia --stderr-progress callbacks (correction vs severe),
record event counts and track-relative suspicious frame ranges, and
surface them on TrackResult, the rip log, and CLI warnings. Report-first:
do not abort on non-fatal errors alone.

Addresses whipper-team#88 and whipper-team#492.

Signed-off-by: ajzrva-sys <ajzrva-sys@users.noreply.github.com>
@ajzrva-sys
ajzrva-sys force-pushed the feature/cdparanoia-error-reporting branch from 6ea09d0 to fcc5c7a Compare September 18, 2026 12:21
…er-team#294)

Export shared ROUTINE/CORRECTION/SEVERE sets and classify_cdparanoia_events()
from the cdparanoia progress parser. WhipperLogger now uses that classifier
instead of duplicated name sets, records lossy severe event names, and
reports an explicit "cdparanoia health" line in the conclusive status
report (clean / corrections only / severe errors possibly lossy).

Severe events (skip, transport error, scsi_read error) still force
Health status "There were errors" even when test/copy CRCs match.

Signed-off-by: ajzrva-sys <ajzrva-sys@users.noreply.github.com>
Addresses whipper-team#294.
)

Classify events using libcdio/libcdio-paranoia paranoia_cb_mode_t,
callback_strings[], and usage.txt.in progress-bar symbols:

- definitely lossy (bar "V"): skip, scratch, scsi_read error
- severe recoverable (bar "e"): transport error, cache error
- corrections (bar "-"/"+"/"!"): jitter, correction, overlap,
  dropped, duped, drift, backoff, scratch repair

Health status "There were errors" still triggers on CRC mismatch or
any severe event. The status report "cdparanoia health" line now
distinguishes definitely lossy vs severe recoverable vs corrections
only. Track status warns explicitly about uncorrected/skipped sectors
when CRCs still match.

Signed-off-by: ajzrva-sys <ajzrva-sys@users.noreply.github.com>
Addresses whipper-team#294.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant