bad CDs and eternal retries - what to do? (long)

Alberto Vignani (alberto.vignani@torino.alpcom.it)
Sun, 19 May 1996 20:39:28 +0000 (GMT)


Hello.

Since I bought a CR recorder I started having troubles with the IDE CD
driver under Linux.

Many CD-Rs I write have errors - sometimes a manufacturing defect, some-
times a glitch in the recorder, probably 99% of the times nasty bugs
in Windows 95 programs (why CDs written under DOS are always good?).
I cannot write CDs under Linux because my Sony 920S is not supported
by cdwrite (someone has to solve this too).

When I switch to Linux to verify the CD on the 6x IDE drive and the CD
has an error, the drive just goes on retrying forever (well, I didn't
wait more than 3-4 minutes, hope it's enough).

These errors have always code 0x30 and status 0x51 (seek errors). The
CD is clearly bad, even DOS and Win are unable to read over the damaged/
missing/skipped(?) sectors.

There is no way of stopping the messages on the screen, nor to kill the
process (usually cat or cmp); the VC seems frozen and the only way to
stop the driver from retrying is to (warm) reboot the machine. Sometimes
the drive door get locked after that, but eject solves the problem.

My current setup: kernel pre-2.0.5, pentium gcc 960426, ATAPI CD Philips
665A (hope it's not a gcc bug ...)

Here is a sample trace. I enabled DEBUG in ide.c, added some messages to
ide-cd.c, then I mounted the CD and tried to cat the bad file to /dev/null:

<4>cdrom_queue_packet_command
<4>retry 6
<4>ide1: do_request: current=0x01279e5c
<4>ide_do_rw_cdrom
<4>cdrom_do_packet_command
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>hdc: media changed
<4>cdrom_end_request 1
<4>ide1: do_request: current=0x001ea6ac
<4>ide_do_rw_cdrom
<4>cdrom_do_packet_command
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>cdrom_end_request 1
<4>ATAPI device hdc:
<4> Error code: 0x70
<4> Sense key: 0x06 - Unit attention
<4> Additional sense data: 0x28, 0x00 - Not ready to ready transition, medium may have changed
<4> Failed packet command: 00 00 00 00 00 00 00 00 00 00 00 00
<4>retry 5
<4>ide1: do_request: current=0x01279e5c
<4>ide_do_rw_cdrom
<4>cdrom_do_packet_command
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>cdrom_end_request 1
<4>cdrom_queue_packet_command
<4>retry 6
<4>ide1: do_request: current=0x01279da8
<4>ide_do_rw_cdrom
<4>cdrom_do_packet_command
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>cdrom_end_request 1
<4>cdrom_queue_packet_command
<4>retry 6
<4>ide1: do_request: current=0x01279e08
<4>ide_do_rw_cdrom
<4>cdrom_do_packet_command
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>cdrom_end_request 1
<4>cdrom_read_toc
<4>cdrom_queue_packet_command
<4>retry 6
<4>ide1: do_request: current=0x01279df8
<4>ide_do_rw_cdrom
<4>cdrom_do_packet_command
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>cdrom_end_request 1
<4>cdrom_queue_packet_command
<4>retry 6
<4>ide1: do_request: current=0x01279df8
<4>ide_do_rw_cdrom
<4>cdrom_do_packet_command
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>cdrom_end_request 1
<4>cdrom_queue_packet_command
<4>retry 6
<4>ide1: do_request: current=0x01279df8
<4>ide_do_rw_cdrom
<4>cdrom_do_packet_command
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>cdrom_end_request 1
<4>cdrom_queue_packet_command
<4>retry 6
<4>ide1: do_request: current=0x01279db8
<4>ide_do_rw_cdrom
<4>cdrom_do_packet_command
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>cdrom_end_request 1
<4>ide0: do_request: current=0x001dd348
<4>hda: reading: LBAsect=1220748, sectors=2, buffer=0x01258400
<4>hda: read: sectors(196620-196621), buffer=0x01258800, remaining=0
<4>cdrom_queue_packet_command
<4>retry 6
<4>ide1: do_request: current=0x01279e4c
<4>ide_do_rw_cdrom
<4>cdrom_do_packet_command
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>cdrom_end_request 1
<7>VFS: Disk change detected on device 16:00
<4>cdrom_read_toc
<4>cdrom_queue_packet_command
<4>retry 6
<4>ide1: do_request: current=0x012791f0
<4>ide_do_rw_cdrom
<4>cdrom_do_packet_command
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>cdrom_end_request 1
<4>ide1: do_request: current=0x001dd318
<4>ide_do_rw_cdrom
<4>cdrom_start_read 64
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>cdrom_end_request 1
<7>Max size:331190 Log zone size:2048
<7>First datazone:26 Root inode number 53248
<4>ide1: do_request: current=0x001dd2e8
<4>ide_do_rw_cdrom
<4>cdrom_start_read 104
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>ide0: do_request: current=0x001dd2b8
<4>hda: reading: LBAsect=1253560, sectors=2, buffer=0x01259800
<4>hda: read: sectors(229432-229433), buffer=0x01259c00, remaining=0
<4>cdrom_end_request 1
<4>cdrom_queue_packet_command
<4>retry 6
<4>ide1: do_request: current=0x01279ce8
<4>ide_do_rw_cdrom
<4>cdrom_do_packet_command
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>cdrom_end_request 1
<4>ide1: do_request: current=0x001dd468
<4>ide_do_rw_cdrom
<4>cdrom_start_read 175396
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<...>
<4>ide1: do_request: current=0x001dd468
<4>ide_do_rw_cdrom
<4>cdrom_start_read 175400
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>ide0: do_request: current=0x001dd048
<4>hda: writing: LBAsect=1024130, sectors=6, buffer=0x00081400
<4>hda: multwrite: sector 2, buffer=0x00081400, count=2, remaining=4
<4>hda: multwrite: sector 2, buffer=0x00081800, count=2, remaining=2
<4>hda: multwrite: sector 2, buffer=0x00081c00, count=2, remaining=0
<4>ide0: do_request: current=0x001dd018
<4>hda: writing: LBAsect=1536910, sectors=4, buffer=0x0137dc00
<4>cdrom_end_request 1
<4>hda: multwrite: sector 512782, buffer=0x0137dc00, count=2, remaining=2
<4>hda: multwrite: sector 512782, buffer=0x013d7400, count=2, remaining=0
<4>ide1: do_request: current=0x001dd438
<4>ide_do_rw_cdrom
<4>cdrom_start_read 175402
<4>cdrom_end_request 1
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>ide0: do_request: current=0x001dcf28
<4>hda: writing: LBAsect=1663112, sectors=2, buffer=0x01745800
<4>hda: multwrite: sector 638984, buffer=0x01745800, count=2, remaining=0
<4>ide1: do_request: current=0x001dd408
<4>ide_do_rw_cdrom
<4>cdrom_start_read 175434
<4>cdrom_end_request 1
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>ide1: do_request: current=0x001dd3d8
<4>ide_do_rw_cdrom
<4>cdrom_start_read 175446
<4>cdrom_end_request 1
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>ide0: do_request: current=0x001dcec8
<4>hda: writing: LBAsect=1663118, sectors=2, buffer=0x00250c00
<4>hda: multwrite: sector 638990, buffer=0x00250c00, count=2, remaining=0
<4>ide1: do_request: current=0x001dd3a8
<4>ide_do_rw_cdrom
<4>cdrom_start_read 287008
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<...>
<4>ide1: do_request: current=0x001dd1c8
<4>ide_do_rw_cdrom
<4>cdrom_start_read 287276
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>ide1: do_request: current=0x001dd198
<4>ide_do_rw_cdrom
<4>cdrom_start_read 287308
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>ide1: do_request: current=0x001dd168
<4>ide_do_rw_cdrom
<4>cdrom_start_read 287316
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>ide1: do_request: current=0x001dd168
<4>ide_do_rw_cdrom
<4>cdrom_start_read 287328
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>ide1: do_request: current=0x001dd168
<4>ide_do_rw_cdrom
<4>cdrom_start_read 287328
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>hdc: cdrom_decode_status: status=0x51
<4>hdc: cdrom_decode_status: error=0x30
<4>cdrom_end_request 0
<4>end_request: I/O error, dev 16:00, sector 287327
<4>ide1: do_request: current=0x001dd168
<4>ide_do_rw_cdrom
<4>cdrom_start_read 287328
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>ide1: do_request: current=0x001dd168
<4>ide_do_rw_cdrom
<4>cdrom_start_read 287328
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>ide1: do_request: current=0x001dd168
<4>ide_do_rw_cdrom
<4>cdrom_start_read 287328
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>hdc: cdrom_decode_status: status=0x51
<4>hdc: cdrom_decode_status: error=0x30
<4>cdrom_end_request 0
<4>end_request: I/O error, dev 16:00, sector 287329
<4>ide1: do_request: current=0x001dd168
<4>ide_do_rw_cdrom
<4>cdrom_start_read 287330
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>ide1: do_request: current=0x001dd168
<4>ide_do_rw_cdrom
<4>cdrom_start_read 287330
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>ide1: do_request: current=0x001dd168
<4>ide_do_rw_cdrom
<4>cdrom_start_read 287330
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>hdc: cdrom_decode_status: status=0x51
<4>hdc: cdrom_decode_status: error=0x30
<4>cdrom_end_request 0
<4>end_request: I/O error, dev 16:00, sector 287333
<4>ide1: do_request: current=0x001dd168
<4>ide_do_rw_cdrom
<4>cdrom_start_read 287334
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>ide0: do_request: current=0x001dd048
<4>hda: writing: LBAsect=1257408, sectors=2, buffer=0x016fac00
<4>hda: multwrite: sector 233280, buffer=0x016fac00, count=2, remaining=0
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>cdrom_end_request 1
<4>end_request: buffer-list destroyed
<4>ide1: do_request: current=0x001dd168
<4>ide_do_rw_cdrom
<4>cdrom_start_read 287348
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>cdrom_end_request 1
<4>ide1: do_request: current=0x001dd468
<4>ide_do_rw_cdrom
<4>cdrom_start_read 287324
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>cdrom_end_request 1
<4>ide1: do_request: current=0x001dd468
<4>ide_do_rw_cdrom
<4>cdrom_start_read 287328
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>ide1: do_request: current=0x001dd468
<4>ide_do_rw_cdrom
<4>cdrom_start_read 287328
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>hdc: cdrom_decode_status: status=0x51
<4>hdc: cdrom_decode_status: error=0x30
<4>cdrom_end_request 0
<4>end_request: I/O error, dev 16:00, sector 287327
<4>ide1: do_request: current=0x001dd468
<4>ide_do_rw_cdrom
<4>cdrom_start_read 287328
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>ide1: do_request: current=0x001dd468
<4>ide_do_rw_cdrom
<4>cdrom_start_read 287328
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>ide1: do_request: current=0x001dd468
<4>ide_do_rw_cdrom
<4>cdrom_start_read 287328
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>hdc: cdrom_decode_status: status=0x51
<4>hdc: cdrom_decode_status: error=0x30
<4>cdrom_end_request 0
<4>end_request: I/O error, dev 16:00, sector 287329
<4>end_request: buffer-list destroyed
<4>ide1: do_request: current=0x001dd468
<4>ide_do_rw_cdrom
<4>cdrom_start_read 287330
<4>cdrom_start_packet_command
<4>cdrom_transfer_packet_command
<4>ide1: do_request: current=0x001dd468
<4>ide_do_rw_cdrom
<4>