Comment 14 for bug 244445

Revision history for this message
andrewmcnnz (andrew-scoop) wrote :

There are a lot of reports like this in the forums. I haven't yet found an answer.

As with others, this started with a system upgrade, in my case from hardy to intrepid. I'm running kernel 2.6.27-11-generic. I'm getting similar, but not identical results to most other people, and maybe this might throw some light on things.

I've had much the same results whether it's with a burnt CD or a store bought DVD.

my lshw output for the CDROM:
  *-cdrom
       description: DVD-RAM writer
       product: DVD-RAM UJ-841S
       vendor: MATSHITA
       physical id: 1
       bus info: scsi@1:0.0.0
       logical name: /dev/cdrom
       logical name: /dev/cdrw
       logical name: /dev/dvd
       logical name: /dev/dvdrw
       logical name: /dev/scd0
       logical name: /dev/sr0
       logical name: /media/cdrom0
       version: 1.50
       capabilities: removable audio cd-r cd-rw dvd dvd-r dvd-ram
       configuration: ansiversion=5 mount.fstype=iso9660 mount.options=ro,nosuid,nodev,noexec state=mounted status=ready
     *-medium
          physical id: 0
          logical name: /dev/cdrom
          logical name: /media/cdrom0
          configuration: mount.fstype=iso9660 mount.options=ro,nosuid,nodev,noexec state=mounted

Currently there's a movie DVD in the drive. I've had much the same results though whether reading a burnt data CD or a store bought movie DVD.

In dmesg I see lots of:
[244935.679920] attempt to access beyond end of device
[244935.679923] sr0: rw=0, want=199360, limit=6124
[244935.804247] attempt to access beyond end of device
[244935.804269] sr0: rw=0, want=64192, limit=6124
[244935.804279] attempt to access beyond end of device
[244935.804288] sr0: rw=0, want=64196, limit=6124

Notably many other reports seem to say 'limit=4', wheras my limit is larger (6124), but that number is consistent for me across different CD and DVD discs. Probably as a result of this larger limit, while many people cannot mount the disc, I can mount it and read the first part of the disk, including some directories and files. I can Identify the file that crosses the limit of the detected device size - I can read the first part of the file, and not the latter part. When reading sequentially, it goes along OK for a bit, then fails and dmesg reports:

Apr 19 23:08:56 andrew-laptop kernel: [246230.680122] attempt to access beyond end of device
Apr 19 23:08:56 andrew-laptop kernel: [246230.680140] sr0: rw=0, want=6128, limit=6124
Apr 19 23:08:56 andrew-laptop kernel: [246230.680148] Buffer I/O error on device sr0, logical block 1531
Apr 19 23:08:56 andrew-laptop kernel: [246230.683944] attempt to access beyond end of device
Apr 19 23:08:56 andrew-laptop kernel: [246230.683956] sr0: rw=0, want=6132, limit=6124
Apr 19 23:08:56 andrew-laptop kernel: [246230.683963] Buffer I/O error on device sr0, logical block 1532
Apr 19 23:08:56 andrew-laptop kernel: [246230.687969] attempt to access beyond end of device
Apr 19 23:08:56 andrew-laptop kernel: [246230.687980] sr0: rw=0, want=6136, limit=6124
...etc.

Trying to read other files that start later on the disk fails entirely, with the now familiar error pattern.

It appears that the information on the size of the device is being detected incorrectly. The specific bug might be different in my case, but the effects that flow from this are presumably much the same. When the supposed size is 4 as in most people's reports, they can't read enough to mount the file system.

andrew@andrew-laptop$ cat /dev/scd0 | wc -c
3135488

Which is exactly 6124*512. Presumably that 'limit=6124' in my logs is expressed in 512 byte blocks. No error in the shell or in my kernel logs from this test. I had thought it might go until it hit its limit and then start producing errors, but instead it just stops reading the device at the point where the supposed size limit is hit.

df reports the size of the filesystem as being larger:

andrew@andrew-laptop$ df
Filesystem 1K-blocks Used Available Use% Mounted on
...
/dev/scd0 840704 840704 0 100% /media/cdrom0

Presumably that figure is the size of the file system as opposed to the device, and the size is stored in some sort of metadata within the filesystem itself. I don't think there is any problem in the working of the file system except that problems with reading the underlying device prevent access to most of it.