Bad CD-ROM can hang Linux

Greg Wright (gw@big.att.com)
Mon, 06 May 1996 10:18:07 EDT


Hello,

I recently tried reading a CD-ROM under Linux (1.3.97), with the
result that Linux hung. The CD-ROM proved to be defective, but can
we make the behavior of Linux more graceful?

Details:

The defective CD-ROM caused an `attempt to access beyond end of device'
message from `make_request' in ll_rw_blk.c. Apparently in bailing out of
`make_request' some things are left in a bad state, with the result that
Linux hangs. (Interestingly, the only thing it seems to respond to after
`attempt to access...' is ctl-alt-del, which blanks the screen but does
not successfully reboot the system.)

On SunOS-4.1.3_U1, reading the same CD-ROM simply results in a I/O error
with zero bytes transferred.

Am I correct that a reasonable way to fix this is to have `make_request'
return a value (instead of void, as presently) so that `ll_rw_blk' could
recognize that a transfer was not possible? I'd be happy to work on this
if someone could give me a pointer on where to begin.

Bad CD-ROMs are probably an inevitable part of our future, so a fix is
probably worth the effort.

-Greg Wright

-- 

Gregory Wright Wireless Technology Research Department Bell Laboratories 791 Holmdel-Keyport Road Holmdel, New Jersey 07733

(908) 888-7133 (908) 888-7074 [fax]