The Laser Playback Head of Omniscience


paranoia: buglist and history

"You question the worthiness of my Code? I should kill you where you stand!"
--Top ten reasons never to hire Klingon engineers

[ home | news | faq | download/svn | links/resources | documentation ]

September 23, 2008

Known bugs/shortcomings in 10.2

A number of these items are simply bugs in particular drives that cdparanoia cannot yet correct or known limitations in the current verification algorithm used by cdparanoia.

If you don't see something described here that you're having trouble with, please also check the troubleshooting page before sending mail.

  • 'private' as a reserved keyword now being enforced by GCC 4.3, causes a build failure (patched in SVN).
  • Option -p (output raw in host byte order) consistently gets the byte order backwards on both big and little endian (patched in SVN).
  • Density autosense on non-MMC cdrom drives (that is, greater than ten years old) broken for some drives (patched in SVN along with an improvement in autosense order that should correctly probe more ancient drives.)
  • Some drives that cause the 8-| smilie and '!' mark in the status bar (dropped/duplicated bytes found after first stage verification) will likely also click. The 8-| smilie indicates that the drive is making errors that are difficult to detect.

Known bugs fixed from previous releases

Bugs fixed since alpha 10.1

  • Inability to correctly handle caches on a substantial fraction of modern drives, which resulted in skipping getting through verification.
  • Numerous scan, autosense and transport bugs in the SCSI and SGIO layer.
  • speed setting only worked for ATAPI drive (not SCSI or drives using SCSI emulation).
  • cleanly abort when an SGIO drive ejects media and reports empty; a retry loop is not appreciated in this case.

    Bugs fixed since alpha 9.8

    • Segfault caused by failure to probe a detected SCSI cdrom drive.
    • Lack of SG_IO interface support.
    • Autoconf and build fixes.

    Bugs fixed since alpha 9.7

    • Running a new copy of cdparanoia when cdparanoia is already running may block until the previous run finishes (limitation because the current SG driver needs to be opened O_EXCL, which blocks the autodetect of other cdparanoia processes).
    • Kenwood TruX drives read very slowly; they support more than one DAE read command, but all but one only read at ~1x.
    • Fixed segfault when a device isn't found.

    Bugs fixed since alpha 9.6

    • Due to an error in the autoscan code, cdparanoia could get itself stuck finding a cdrom drive if entries for both /dev/sga,b,c,d... and /dev/sg0,1,2,3... exist.
    • Fixed a large memory leak in the sorting code that affected the library interface.
    • The 'slide' bug is dead! Up to 9.6, verification algorithm could 'slide' during periods of total silence. The problem with long vectors of zeroes is that there are no landmarks to lock onto and cdparanoia can currently match too early or too late. Especially popped up with -B; now fixed.
    • The verification algorithm can accidentally flip channels on some drives. The flip only happens during periods of silence (and persists for the length of the track). Fixed.
    • 9.6 can continue reporting '-' in the status bar after a first bit of jitter, even if subsequent reads are correct relative to one another (as opposed to correct relative to the main data vector). Fixed.

    Bugs fixed since alpha 9.5

    • 9.5 attempted aggressive use of the new Linux 2.2 SG driver; a bit too aggressive it seems. I backed out large DMA transfers, which were causing trouble (mostly very slow performance and lockups) on some systems.
    • Repaired a bounds error in the 9.5 SCSI buffering code.
    • -S was actually nonfunctional.

    Bugs fixed since alpha 9.4

    • 9.4 did not work with Doug Gilbert's new SG driver now appearing in some 2.2 kernels; reported 'writable when reading packet', and then died bue to changes in new-SG's select() behavior. 9.5 is aware of the new interface and behaves properly.
    • 9.4 did not clear out 'unused' fields in the SG_header and could malfunction with variants of SG by Joerg Schilling and Heiko Eissfeldt (these variations use the 'unused' fields). 9.5 clears the fields.
    • 9.4 had a signal bug that really did result in cdparanoia being unkillable after a transport error. 9.5 corrects the unkillable problem.
    • 9.4 wrote invalid AIFF headers. Fixed in 9.5.
    • A patch new to 9.4 required a drive to be able to read the track 1 pregap to access track 1. It turns out a small number of of drives (most commony NEC, Yamaha and some Toshibas) cannot do this; 9.5 works around the problem.
    • 9.4 misreports SONY CD-ROM CDU-561 1.7X as an ATAPI drive (rather, the drive returns incorrect Inquiry information). 9.5 has a blacklist entry to correct this behavior.
    • 9.4 misreports Chinon CD-ROM CDS-525 V10 SCSI drive as ATAPI (as above, hangs system if you have a buggy controller/driver). 9.5 has a blacklist entry to correct this behavior.
    • 9.4 may hang a Matsushita 7501 drive due to probing for a 10 byte 0xd4 read command before the 12 byte version the drive actually wants. 9.5 has a blacklist entry to correct this behavior.
    • 9.4 installs some files chmod 600 instead of 644. Corrected in 9.5.
    • 9.4 opens output file as 660 instad of 666 (should follow the user's umask). Corrected in 9.5.
    • In the usage information:
        C) extract from track 1, time 0:30.12 to 1:10.00:
             cdparanoia "1[:30.12]1-[1:10]"
      The example should be:
             cdparanoia "1[:30.12]-1[1:10]"
      Fixed in 9.5.

    Bugs fixed since alpha 9.3

    • -Y hung a little too easily.
    • A bug in the second stage verification could possibly corrupt a bad read even worse (rather than fix it) if it got through stage one.

    Bugs fixed since alpha 9.2

    • 9.2 was very slow in high fragmentation cases (well, everything since alpha 6 has been).
    • Fixed a segfault in cleanup that happens after extraction is over and the Paranoia is shutting down.
    • The Toshiba XM5702B did not actually need any TOC offset to function properly. It was just misunderstood.
    • More usage/manpage information added since 9.2

    Bugs fixed since alpha 9.1

    • Fixed a segfault that could happen at the end of a rip with -Y.
    • -Y was not reporting jitter to the status bar.
    • A major performance bug (caused by a typo) could bring the first stage verifier to a screeching halt. The bug did not result in bad data, but did make drives that lose streaming often *really* slow.
    • Made the first stage verifier much more strict about verifying across read boundaries; this also cleaned up some spurious '+' characters in the status bar.

    Bugs fixed since alpha 9

    • Panasonic CR-50x and 7501 drives are now supported.
    • Repaired a segfault when a drift compensation happens at the beginning of a rip.

    Bugs fixed since alpha 8

    • Discs that return 'really illegal' table of contents parameters (eg, negative tracks, tracks with negative starting sector offsets) were unreadable.
    • Drives that require large overlap settings were *very* slow.
    • Transport errors were often incorrectly marked as "unable to write packet command to device." The error was actually happening; cdparanoia was just reporting the wrong error type.
    • Occasional freezup during 'Attempting to autosense SG_BIG_BUFF' fixed.

    Bugs fixed since alpha 7

    • Segfault #1 (a bug in linux libc, not cdparanoia) libc 5 versions prior to 5.4.33 have a bug in the string handling functions that can cause a segfault during drive autosense. If cdparanoia crashes before getting to the progress meter, you have a libc bug. 5.4.33+ and glibc 2 (libc 6.x.x) appear to be safe. The statically linked binary under 'download' is linked against a safe libc. A workaround exists in alpha 8.
    • Segfault #2: alpha 7 may segfault at the beginning of the read process if the drive is returning badly damaged data at the very beginning of the disc. This can only happen at the beginning of track 1. Alpha 8 repairs this fault.
    • Segfault #3 (a change in the linux kernel interface): Any cdparanoia executable built under kernel 2.0.33 or earlier may segfault under 2.0.34 using the ATAPI interface. Note that simply upgrading the *kernel* and rebuilding will not fix the problem if the header files and symlinks have not also been updated; this especially affects Debian and RedHat users who have upgraded their kernel using a package without also keeping the headers in sync. Alpha 8 has a workaround to this special little piece of Linux brokenness.
    • Premature bailing during a read (error 007: or 010:) if cdparanoia runs into an unaddressable sector.
    • Relative paths given to the 'file' argument are broken in general; fixed in alpha 8.
    • The bargraph reports too many overlap and fixup errors. The bug is cosmetic: the data is sound. Alpha 8 fixes this bug.
    • The smilie will get stuck making a face if a fixup occurs, but no further fixups are needed for the rest of the disc. Pretty much only Toshiba and Plextor users will see this :-) Alpha 8 fixes this bug.
    • There was no 'files too long in raw mode' bug. The users reporting this were confused about command line argsuments.
    • Track At Once (TAO) discs get stuck at track boundaries. This is due to the unreadable run-in and run-out blocks used by TAO. A workaround is in testing.
    • (not a cdparanoia bug) end of disc errors using the Linux ATAPI driver: sorry, the driver seems to be responsible for this. Using IDE-SCSI emulation will make these errors go away.

    Bugs fixed since alpha 6

    • It was possible to confuse the silence handling code, resulting in phantom rifts and accidental skips at the edges of total silence (usually at the beginning or end of a track). This resulted in skips that the beginning or end of rips (usually a repeated section of audio).
    • The progress indicator was not properly cleared between track rips when using -B.
    • The length of .WAV and .AIFC files produced when using -B was the length of the total rip rather than the length of each respective track.
    • File output names for -B are changed from track1, track2... track99 to track01, track02... track99 for easier shell sorting when using with cdrecord.
    • Scsi read error detection code (due to overhead) was disabled after startup and autosense; Alpha 7 enables error detection code for all SCSI operations.
    • The occasional segfault.

    Bug fixes since alpha 5

    • fixed two autosensing bugs
    • fixed a build bug under Linux mid-2.1
    • added additional command check for some nonstandard ATAPI drives that return the wrong sector size on a normal MMC-style read.

    Bug fixes since alpha 4

    • repaired another segfault condition during silence
    • improved IDE SCSI host adaptor emulation on newest kernels
    • repaired -Z and -Y (again)
    • repaired sector counter on progress bar

    Bug fixes since alpha 3

    • Corrected a segfault during portions of a track containing dead silence (all zeroes)
    • output with -V was missing a newline

    Bug fixes since alpha 2

    • MMC/SCSI-III support.
    • IDE-SCSI emulation support.
    • Sbpcd interface fixed.
    • A few models of drive caused Paranoia to bail without an error before the end of the read. This affected mostly (but not only) NEC, Hitachi and GoldStar drives.
    • Permissions on the output file set the x bit set.
    • Some SCSI drives got files full of all NULLs.
    • Help usage output went to stderr.
    • A few confusing error messages (006, for example, really means that the drive is probably not CDDA capable)
    • no 'make install'
    • some drives return invalid TOCs when a disc is not loaded
    • autoprobing for cdrom drives temporarily froze a machine that has built modules for drives it does not have (the Aztech driver was mostly at fault here).
    • audio session beginning offset was accidentally doubled, usually resulting in starting just after the beginning of a song, or grabbing a bit of the next track. On a multisession disc, it could cause 'invalid track' errors and/or the inability to read the disc at all.
    • Non-CDDA capable proprietary drives reported error 006 several thousand times before bailing.
    • Autoscan didn't end if /dev/cdrom exists but isn't accessible.
    • -Z broke the progress meter (it works, but the progress meter does not advance).
    • Autoprobing for a SCSI cdrom fails if its module isn't loaded. (This is actually some other Linux problem and still doesn't always work.)

    Bug fixes since alpha 1

    • Upon closer inspection, CDROM drives actually were having that many atomic read botches.
    • Fixed a build bug under Linux 2.1
    • Check isatty() before printing status indicator
    • A few NEC drives report ready when they have no disc.

  • Cdparanoia and the Laser-Playback-Head-of-Omniscience logo are trademarks (tm) of Xiphophorus. These pages are copyright (C) 1994-1999 Xiphophorus. All rights reserved.
    Comments and questions about this web site are welcome.