Error reading DVD

78 views
Skip to first unread message

Blake McBride

unread,
Dec 2, 2016, 9:21:53 PM12/2/16
to minix3
Greetings,

I am running a Minix I build from source about a week ago.  It seems to run fine.  I am able to edit, compile, and run programs with no errors.  I am now trying to read some packages I saved to a DVD.  Here is what is happening:

mount -t isofs /dev/c0d0 /mnt          -- no problem
ls /mnt                                             -- lists the contents.  No problem
cp /mnt/bash-4.4.tgz .


The cp returns the following:

fs cache: I/O error on device 3/0, block 752743 (0)
isofs(65571): panic: bp not valid in rw_chunk; this can't happen
syslib:panic.c: stacktrace: 0x80528a6 0x8049c67 0x804b35c 0x804a6a5 0x804a779 0x804832d 0x80481eb 0x8048118
SEF(65571): crash was not controlled, aborting transparent restart
cp: /mnt/bash-4.4.tgz: Input/output error
Trying to talk to non-existant FS endpoint 65571
VFS: putnode failed: -5
0x8058af5 .....
minix#


I was signed on as root.  The same cp, with the same DVD, works fine on my Linux box.

Thanks.

Blake McBride

Jean-Baptiste Boric

unread,
Dec 3, 2016, 9:18:11 AM12/3/16
to minix3
Hi,
 
fs cache: I/O error on device 3/0, block 752743 (0)
isofs(65571): panic: bp not valid in rw_chunk; this can't happen
syslib:panic.c: stacktrace: 0x80528a6 0x8049c67 0x804b35c 0x804a6a5 0x804a779 0x804832d 0x80481eb 0x8048118
SEF(65571): crash was not controlled, aborting transparent restart
cp: /mnt/bash-4.4.tgz: Input/output error
Trying to talk to non-existant FS endpoint 65571
VFS: putnode failed: -5
0x8058af5 .....
minix#

That's odd. It's an I/O error, I would've expected an isofs error instead...

Can you tell me the exact size of the DVD image down to the byte ?

If you have enough space to do that, can you dd the DVD under MINIX to a file and mount it ?

Does the DVD have an ISO 9660 and/or UDF file system ? Additionally, when you copied the file under Linux, was the DVD mounted as ISO 9660 or UDF ?

Does isoread/isodir work with the DVD ? Or with the dd image ?

isofs in its current form is a bit of a hack. Beyond being used as the root file system for the installation CD it hasn't been tested that much since I rewrote it, so there's bound to be some bugs in it.

Blake McBride

unread,
Dec 3, 2016, 10:12:57 AM12/3/16
to minix3
When I mount the DVD in question on my Linux box, it says it is an iso9660.  I tried mounting another DVD on Minix, and a copy worked with it.  I think I may know the problem.  The DVD that gives the error has 3977 files on its root directory.

Does that help, or do you need exact bytes...?

Thanks.

Blake

Jean-Baptiste Boric

unread,
Dec 3, 2016, 10:56:22 AM12/3/16
to minix3
When I mount the DVD in question on my Linux box, it says it is an iso9660.  I tried mounting another DVD on Minix, and a copy worked with it.  I think I may know the problem.  The DVD that gives the error has 3977 files on its root directory.

Does that help, or do you need exact bytes...?

The isofs code has a limit on how many inodes can there be inside a directory. The limit (currently 4096) is set at minix/fs/isofs/inode.c:103. If you can recompile the isofs service, try increasing the limit to 16384.

However, that error message is not consistent with this limit since extra inodes should simply be ignored, it should not trigger an I/O error... And 3977 is less than 4096, so there might be something else going on.

For the bytes, I'm mostly concerned about isofs trying to read stuff beyond the end of the DVD. Is the image bigger than 1 541 619 712 bytes ?

Blake McBride

unread,
Dec 3, 2016, 11:04:02 AM12/3/16
to minix3


On Saturday, December 3, 2016 at 8:18:11 AM UTC-6, Jean-Baptiste Boric wrote:
Hi,
 
fs cache: I/O error on device 3/0, block 752743 (0)
isofs(65571): panic: bp not valid in rw_chunk; this can't happen
syslib:panic.c: stacktrace: 0x80528a6 0x8049c67 0x804b35c 0x804a6a5 0x804a779 0x804832d 0x80481eb 0x8048118
SEF(65571): crash was not controlled, aborting transparent restart
cp: /mnt/bash-4.4.tgz: Input/output error
Trying to talk to non-existant FS endpoint 65571
VFS: putnode failed: -5
0x8058af5 .....
minix#

That's odd. It's an I/O error, I would've expected an isofs error instead...

Can you tell me the exact size of the DVD image down to the byte ?

On Minix I did:  dd if=/dev/c0d0 of=dvd.iso

dvd.iso is 838,860,800 bytes

Then I did the following on a Linux box with the same DVD:  dd if=/dev/sr0 of=dvd.iso

dvd.iso is 4,138,729,472 bytes

The DVD does have about 4GB of data on it.

Why did Minix dd stop short?

Blake McBride

unread,
Dec 3, 2016, 11:08:18 AM12/3/16
to minix3
On Saturday, December 3, 2016 at 9:56:22 AM UTC-6, Jean-Baptiste Boric wrote:
When I mount the DVD in question on my Linux box, it says it is an iso9660.  I tried mounting another DVD on Minix, and a copy worked with it.  I think I may know the problem.  The DVD that gives the error has 3977 files on its root directory.

Does that help, or do you need exact bytes...?

The isofs code has a limit on how many inodes can there be inside a directory. The limit (currently 4096) is set at minix/fs/isofs/inode.c:103. If you can recompile the isofs service, try increasing the limit to 16384.

However, that error message is not consistent with this limit since extra inodes should simply be ignored, it should not trigger an I/O error... And 3977 is less than 4096, so there might be something else going on.

Since I am under the limit, and it take so long to build an image.  I think I'll wait on this test.
 

For the bytes, I'm mostly concerned about isofs trying to read stuff beyond the end of the DVD. Is the image bigger than 1 541 619 712 bytes ?

Yes,  4,138,729,472 bytes

Jean-Baptiste Boric

unread,
Dec 3, 2016, 12:04:14 PM12/3/16
to minix3
For the bytes, I'm mostly concerned about isofs trying to read stuff beyond the end of the DVD. Is the image bigger than 1 541 619 712 bytes ?

Yes,  4,138,729,472 bytes

Since dd only copies part of the DVD, isofs isn't the culprit here. Perhaps the MINIX device driver underneath is at fault. Unfortunately I don't know anything about storage device drivers in MINIX...

I assume you are running MINIX on bare metal. If you have a VM of MINIX available, add the ISO to the VM as a CD-ROM and try to read from it. This should rule out issues with the rest of the storage stack. If you have another DVD drive available, try to use it.

Also, open an issue at the Github repository and provide the precise specs of your setup.

Blake McBride

unread,
Dec 3, 2016, 12:18:09 PM12/3/16
to minix3
Thanks.  I can put a few files on a CD and it works fine.  That (with some hassle) gets me what I needed.  Now, if I can just figure out how to install a package file, I'll be good.

Thanks.

Blake

Blake McBride

unread,
Dec 3, 2016, 12:20:09 PM12/3/16
to minix3
Also, what I may do is install Linux on that box and do the same test.  That would rule out my hardware (which I have no reason to believe is a problem - but still could be).

Antoine LECA

unread,
Dec 7, 2016, 7:27:05 AM12/7/16
to min...@googlegroups.com
On 03/12/2016 15:04Z, Blake McBride wrote:
> On Minix I did: dd if=/dev/c0d0 of=dvd.iso

Your DVD drive is the first device?
On which device is MINIX then?

> dvd.iso is 838,860,800 bytes

800 MiB. Does this number raise some idea?


Antoine

Jean-Baptiste Boric

unread,
Dec 7, 2016, 2:46:43 PM12/7/16
to minix3
> dvd.iso is 838,860,800 bytes

800 MiB. Does this number raise some idea?

It's about 97 MiB higher than the maximum capacity of a standard 80 minutes CD-R, according to Wikipedia. It's also a number with its three low-order bytes filled with zeroes, but the storage drivers work with sectors and LBA counts, not bytes.

Looking at AHCI/AT_WINI's sources, medium capacity is detected by a bunch of different, independent code paths depending on the drive's characteristics (ATA/ATA/ATAPI...). It's too early to speculate, but it wouldn't surprise me if the only ATAPI devices readily available for testing when this code was written were CD-ROM drives.

The easiest way to gather more information about this would be to increase the verbosity of these drivers. The AHCI driver has the ahci_verbose environment variable for that, but AT_WINI's logging capabilities are not as good...
Reply all
Reply to author
Forward
0 new messages