#6036: Read from cd failure (ISO9660 haiku-r1-alpha2.iso) -----------------------+---------------------------------------------------- Reporter: aldeck | Owner: nobody Type: bug | Status: new Priority: normal | Milestone: R1 Component: - General | Version: R1/alpha2 Keywords: | Platform: All Blockedby: | Patch: 0 Blocking: | -----------------------+---------------------------------------------------- Read from cd failure (ISO9660 haiku-r1-alpha2.iso) Reading fails on the file apps/WebPositive/libwebcore.so always at 19,922,944 (0x1300000) bytes in length.[[BR]] The correct length of libwebcore.so is 20,993,020. > tail -f /var/log/syslog > KERN: ata 0 error: command failed, error bit is set. status 0x51, error 0x54[[BR]] > KERN: atapi 0-0 error: device indicates transfer error after dma[[BR]] > KERN: check_sense: Illegal request[[BR]] > KERN: file_cache: read pages failed: General system error[[BR]] The cd checksum is valid on linux, {{{dd if=/dev/sr0 | md5sum}}} Another test: with that same cd, extracting libwebcore.so from the cd succeeds on linux (with correct size and checksum) although it fails on haiku (r36829 from trunk) (same machine, same cd). This is the ISO9660 image, anyboot has no problem. Reproducible running on alpha2 (live cd installer) and r36829 from trunk. Machine is a recent and reliable Q6600 / 4GB. Attached is the result of the instructions from Ingo quoted below (cf //www.freelists.org/post/haiku/trouble-installing-R1A2,19 ) {{{ First of all install a breakpoint where the first error message is logged (ATAChannel::FinishRequest()): breakpoints ([symbol FinishRequest__10ATAChannel] + 0x129) Then trigger the error (I guess a "cat .../libwebcore.so > /dev/null" should do). I'm not sure, if ATAChannel::FinishRequest() is executed in the same thread that requests the I/O operation. If not, find the thread ("calling periph_io") and get a stack trace. The second parameter of periph_io() is an io_operation* -- pass it to the "io_operation" command. The operation has a parent -- pass it to "io_request". This one might also have parent -> "io_request". And so on. The stack trace should also yield an IOCache or IOSchedulerSimple pointer (depending on which is used). Please pass it to "io_scheduler". Also use the address for a "dw <address> 32". }}} -- Ticket URL: <http://dev.haiku-os.org/ticket/6036> Haiku <http://dev.haiku-os.org> Haiku - the operating system.