Ok. Problem is brain damaged HW. Device reports 1 sector more than it has and wedges when it's accessed.
Jan 19 18:58:48 localhost kernel: scsi 3:0:0:0: Direct-Access HP PhotoSmart R707 A001 PQ: 0 ANSI: 0 Jan 19 18:58:48 localhost kernel: sd 3:0:0:0: [sda] 60801 512-byte hardware sectors (31 MB) Jan 19 18:58:48 localhost kernel: sd 3:0:0:0: [sda] Write Protect is off Jan 19 18:58:48 localhost kernel: sd 3:0:0:0: [sda] 60801 512-byte hardware sectors (31 MB) Jan 19 18:58:48 localhost kernel: sd 3:0:0:0: [sda] Write Protect is off
root@mb500:~ # strace -o strace-dd-HPr707.out dd if=/dev/sda of=/dev/null skip=60800 count=1 dd: reading `/dev/sda': Input/output error 0+0 records in 0+0 records out 0 bytes (0 B) copied, 55.7303 seconds, 0.0 kB/s
and relevant bit from strace: open("/dev/sda", O_RDONLY|O_LARGEFILE) = 0 _llseek(0, 0, [0], SEEK_CUR) = 0 close(1) = 0 open("/dev/null", O_WRONLY|O_CREAT|O_TRUNC|O_LARGEFILE, 0666) = 1 rt_sigaction(SIGUSR1, NULL, {SIG_DFL}, 8) = 0 rt_sigaction(SIGINT, NULL, {SIG_DFL}, 8) = 0 rt_sigaction(SIGUSR1, {0x80493a0, [INT USR1], 0}, NULL, 8) = 0 rt_sigaction(SIGINT, {0x8049390, [INT USR1], SA_NOMASK|SA_ONESHOT}, NULL, 8) = 0 clock_gettime(CLOCK_MONOTONIC, {70667, 216812381}) = 0 ioctl(0, MGSL_IOCSTXIDLE or MTIOCGET or SNDCTL_MIDI_MPUCMD, 0xbf8e31d0) = -1 EIN VAL (Invalid argument) _llseek(0, 31129600, [31129600], SEEK_CUR) = 0 read(0, 0x8059000, 512) = -1 EIO (Input/output error)
Strace I collected before of udev and it's children showed /lib/udev/vol_id doing the same thing.
Ok. Problem is brain damaged HW. Device reports 1 sector more than it has and wedges when it's accessed.
Jan 19 18:58:48 localhost kernel: scsi 3:0:0:0: Direct-Access HP PhotoSmart R707 A001 PQ: 0 ANSI: 0
Jan 19 18:58:48 localhost kernel: sd 3:0:0:0: [sda] 60801 512-byte hardware sectors (31 MB)
Jan 19 18:58:48 localhost kernel: sd 3:0:0:0: [sda] Write Protect is off
Jan 19 18:58:48 localhost kernel: sd 3:0:0:0: [sda] 60801 512-byte hardware sectors (31 MB)
Jan 19 18:58:48 localhost kernel: sd 3:0:0:0: [sda] Write Protect is off
root@mb500:~ # strace -o strace- dd-HPr707. out dd if=/dev/sda of=/dev/null
skip=60800 count=1
dd: reading `/dev/sda': Input/output error
0+0 records in
0+0 records out
0 bytes (0 B) copied, 55.7303 seconds, 0.0 kB/s
and relevant bit from strace: O_LARGEFILE) = 0 O_CREAT| O_TRUNC| O_LARGEFILE, 0666) = 1 SIGUSR1, NULL, {SIG_DFL}, 8) = 0 SIGINT, NULL, {SIG_DFL}, 8) = 0 SIGUSR1, {0x80493a0, [INT USR1], 0}, NULL, 8) = 0 SIGINT, {0x8049390, [INT USR1], SA_NOMASK| SA_ONESHOT} , NULL, 8) = 0 CLOCK_MONOTONIC , {70667, 216812381}) = 0
open("/dev/sda", O_RDONLY|
_llseek(0, 0, [0], SEEK_CUR) = 0
close(1) = 0
open("/dev/null", O_WRONLY|
rt_sigaction(
rt_sigaction(
rt_sigaction(
rt_sigaction(
clock_gettime(
ioctl(0, MGSL_IOCSTXIDLE or MTIOCGET or SNDCTL_MIDI_MPUCMD, 0xbf8e31d0) = -1 EIN
VAL (Invalid argument)
_llseek(0, 31129600, [31129600], SEEK_CUR) = 0
read(0, 0x8059000, 512) = -1 EIO (Input/output error)
Strace I collected before of udev and it's children showed /lib/udev/vol_id doing the same thing.