On Do November 27 2008, Frank Lichtenheld wrote:
> On Wed, Nov 12, 2008 at 02:25:02PM +0100, Peter Poeschl wrote:
> > For some time now, eject fails to eject a MO-disk from my Fujitsu
> > MCM3130AP, an IDE device connected to the motherboard via a SATA-IDE
> > bridge. Upon the eject command the drive spins down, but instead of
> > ejecting the disk it reregisteres with the system.
> > eject used to work with this hardware until about July. Since then
> > several updates have taken place (including kernel 2.6.25 -> 2.6.26), but
> > I cannot say which broke eject, as I don't use the drive very often.
> >
> > It does not matter if the command is issued as root or normal user.
>
> Some things you could try:
> 1) run the eject command under strace, this might tell us something
> more. (although it might not, since the ioctls seem to succeed according
> to the verbose output)
$ LANG=C strace -o strace-v.txt eject -v /media/mo1
  See attached file.

> 2) use the version of eject from experimental. It doesn't seem to
> change anything related though, but probably doesn't hurt to try.
I installed 2.1.5+deb1+cvs20081104-2 from experimental and
*it works now*.
I cannot see any significant difference in the strace-output strace-v.exp.txt, 
though.

Best regards,

  Peter Pöschl  


execve("/usr/bin/eject", ["eject", "-v", "/media/mo1"], [/* 35 vars */]) = 0
brk(0)                                  = 0x68b000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x7f5f73388000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x7f5f73386000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=60352, ...}) = 0
mmap(NULL, 60352, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f5f73377000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\342\1\0\0\0\0\0@"..., 832) 
= 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1375536, ...}) = 0
mmap(NULL, 3482232, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 
0x7f5f72e1b000
mprotect(0x7f5f72f65000, 2093056, PROT_NONE) = 0
mmap(0x7f5f73164000, 20480, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x149000) = 0x7f5f73164000
mmap(0x7f5f73169000, 17016, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f5f73169000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x7f5f73376000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x7f5f73375000
arch_prctl(ARCH_SET_FS, 0x7f5f733756e0) = 0
mprotect(0x7f5f73164000, 12288, PROT_READ) = 0
munmap(0x7f5f73377000, 60352)           = 0
brk(0)                                  = 0x68b000
brk(0x6ac000)                           = 0x6ac000
fstat(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 1), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x7f5f73385000
write(1, "eject: device name is `/media/mo1"..., 35) = 35
access("/media/mo1", F_OK)              = 0
write(1, "eject: expanded name is `/media/m"..., 37) = 37
readlink("/media/mo1", 0x7fff7b388520, 4095) = -1 EINVAL (Invalid argument)
stat("/media/mo1", {st_mode=S_IFDIR|S_ISVTX|0775, st_size=104, ...}) = 0
open("/etc/mtab", O_RDONLY)             = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=724, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x7f5f73384000
read(3, "/dev/sda8 / ext3 rw,noatime 0 0\nt"..., 4096) = 724
stat("/dev/sda8", {st_mode=S_IFBLK|0660, st_rdev=makedev(8, 8), ...}) = 0
stat("tmpfs", 0x7fff7b388840)           = -1 ENOENT (No such file or directory)
stat("proc", 0x7fff7b388840)            = -1 ENOENT (No such file or directory)
stat("sysfs", 0x7fff7b388840)           = -1 ENOENT (No such file or directory)
stat("procbususb", 0x7fff7b388840)      = -1 ENOENT (No such file or directory)
stat("udev", 0x7fff7b388840)            = -1 ENOENT (No such file or directory)
stat("tmpfs", 0x7fff7b388840)           = -1 ENOENT (No such file or directory)
stat("devpts", 0x7fff7b388840)          = -1 ENOENT (No such file or directory)
stat("/dev/sda4", {st_mode=S_IFBLK|0660, st_rdev=makedev(8, 4), ...}) = 0
stat("/dev/sda6", {st_mode=S_IFBLK|0660, st_rdev=makedev(8, 6), ...}) = 0
stat("/dev/sda7", {st_mode=S_IFBLK|0660, st_rdev=makedev(8, 7), ...}) = 0
stat("/mnt/.loc/apt/lenny-amd64", {st_mode=S_IFDIR|0755, st_size=160, ...}) = 0
stat("/mnt/.loc/home", {st_mode=S_IFDIR|0755, st_size=72, ...}) = 0
stat("/mnt/.loc/srv", {st_mode=S_IFDIR|0755, st_size=120, ...}) = 0
stat("/mnt/.tmp/tmp", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=4096, ...}) = 0
stat("/mnt/.tmp/var-tmp", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=4096, ...}) = 0
stat("/dev/sdb1", {st_mode=S_IFBLK|0660, st_rdev=makedev(8, 17), ...}) = 0
close(3)                                = 0
munmap(0x7f5f73384000, 4096)            = 0
write(1, "eject: `/dev/sdb1' is mounted at "..., 46) = 46
stat("/dev/sdb1", {st_mode=S_IFBLK|0660, st_rdev=makedev(8, 17), ...}) = 0
write(1, "eject: unmounting device `/dev/sd"..., 55) = 55
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, 
child_tidptr=0x7f5f73375770) = 3550
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 3550
--- SIGCHLD (Child exited) @ 0 (0) ---
write(1, "eject: `/dev/sdb1' is a multipart"..., 46) = 46
open("/etc/mtab", O_RDONLY)             = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=659, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x7f5f73384000
read(3, "/dev/sda8 / ext3 rw,noatime 0 0\nt"..., 4096) = 659
read(3, ""..., 4096)                    = 0
close(3)                                = 0
munmap(0x7f5f73384000, 4096)            = 0
open("/dev/sdb1", O_RDWR|O_NONBLOCK)    = 3
write(1, "eject: trying to eject `/dev/sdb1"..., 62) = 62
ioctl(3, CDROMEJECT, 0x7f5f731699a0)    = -1 EIO (Input/output error)
write(1, "eject: CD-ROM eject command faile"..., 35) = 35
write(1, "eject: trying to eject `/dev/sdb1"..., 55) = 55
ioctl(3, SG_GET_VERSION_NUM, 0x7fff7b38979c) = 0
ioctl(3, SG_IO, {'S', SG_DXFER_NONE, cmd[6]=[1e, 00, 00, 00, 00, 00], 
mx_sb_len=32, iovec_count=0, dxfer_len=0, timeout=2000, flags=0, status=00, 
masked_status=00, sb[0]=[], host_status=0, driver_status=0, resid=0, 
duration=0, info=0}) = 0
ioctl(3, SG_IO, {'S', SG_DXFER_NONE, cmd[6]=[1b, 00, 00, 00, 01, 00], 
mx_sb_len=32, iovec_count=0, dxfer_len=0, timeout=2000, flags=0, status=00, 
masked_status=00, sb[0]=[], host_status=0, driver_status=0, resid=0, 
duration=4, info=0}) = 0
ioctl(3, SG_IO, {'S', SG_DXFER_NONE, cmd[6]=[1b, 00, 00, 00, 02, 00], 
mx_sb_len=32, iovec_count=0, dxfer_len=0, timeout=2000, flags=0, status=02, 
masked_status=01, sb[22]=[72, 0b, 00, 00, 00, 00, 00, 0e, 09, 0c, 00, 00, 00, 
03, 00, 00, 00, 00, 00, 00, a0, 40], host_status=0, driver_status=0x8, resid=0, 
duration=2612, info=0x1}) = 0
ioctl(3, BLKRRPART, 0x7fff7b389670)     = -1 EINVAL (Invalid argument)
write(1, "eject: SCSI eject succeeded\n"..., 28) = 28
close(3)                                = 0
exit_group(0)                           = ?
execve("/usr/bin/eject", ["eject", "-v", "/media/mo1"], [/* 35 vars */]) = 0
brk(0)                                  = 0x1f46000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x7fa6b8507000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x7fa6b8505000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=60352, ...}) = 0
mmap(NULL, 60352, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7fa6b84f6000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libc.so.6", O_RDONLY)        = 3
read(3, 
"\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300\342\1\0\0\0\0\0@"..., 832) 
= 832
fstat(3, {st_mode=S_IFREG|0755, st_size=1375536, ...}) = 0
mmap(NULL, 3482232, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 
0x7fa6b7f9a000
mprotect(0x7fa6b80e4000, 2093056, PROT_NONE) = 0
mmap(0x7fa6b82e3000, 20480, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x149000) = 0x7fa6b82e3000
mmap(0x7fa6b82e8000, 17016, PROT_READ|PROT_WRITE, 
MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7fa6b82e8000
close(3)                                = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x7fa6b84f5000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x7fa6b84f4000
arch_prctl(ARCH_SET_FS, 0x7fa6b84f46e0) = 0
mprotect(0x7fa6b82e3000, 12288, PROT_READ) = 0
munmap(0x7fa6b84f6000, 60352)           = 0
brk(0)                                  = 0x1f46000
brk(0x1f67000)                          = 0x1f67000
fstat(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 1), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x7fa6b8504000
write(1, "eject: device name is `/media/mo1"..., 35) = 35
access("/media/mo1", F_OK)              = 0
write(1, "eject: expanded name is `/media/m"..., 37) = 37
readlink("/media/mo1", 0x7fffc05056a0, 4095) = -1 EINVAL (Invalid argument)
stat("/media/mo1", {st_mode=S_IFDIR|S_ISVTX|0775, st_size=104, ...}) = 0
open("/etc/mtab", O_RDONLY)             = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=724, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x7fa6b8503000
read(3, "/dev/sda8 / ext3 rw,noatime 0 0\nt"..., 4096) = 724
stat("/dev/sda8", {st_mode=S_IFBLK|0660, st_rdev=makedev(8, 8), ...}) = 0
stat("tmpfs", 0x7fffc05059d0)           = -1 ENOENT (No such file or directory)
stat("proc", 0x7fffc05059d0)            = -1 ENOENT (No such file or directory)
stat("sysfs", 0x7fffc05059d0)           = -1 ENOENT (No such file or directory)
stat("procbususb", 0x7fffc05059d0)      = -1 ENOENT (No such file or directory)
stat("udev", 0x7fffc05059d0)            = -1 ENOENT (No such file or directory)
stat("tmpfs", 0x7fffc05059d0)           = -1 ENOENT (No such file or directory)
stat("devpts", 0x7fffc05059d0)          = -1 ENOENT (No such file or directory)
stat("/dev/sda4", {st_mode=S_IFBLK|0660, st_rdev=makedev(8, 4), ...}) = 0
stat("/dev/sda6", {st_mode=S_IFBLK|0660, st_rdev=makedev(8, 6), ...}) = 0
stat("/dev/sda7", {st_mode=S_IFBLK|0660, st_rdev=makedev(8, 7), ...}) = 0
stat("/mnt/.loc/apt/lenny-amd64", {st_mode=S_IFDIR|0755, st_size=160, ...}) = 0
stat("/mnt/.loc/home", {st_mode=S_IFDIR|0755, st_size=72, ...}) = 0
stat("/mnt/.loc/srv", {st_mode=S_IFDIR|0755, st_size=120, ...}) = 0
stat("/mnt/.tmp/tmp", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=4096, ...}) = 0
stat("/mnt/.tmp/var-tmp", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=4096, ...}) = 0
stat("/dev/sdb1", {st_mode=S_IFBLK|0660, st_rdev=makedev(8, 17), ...}) = 0
close(3)                                = 0
munmap(0x7fa6b8503000, 4096)            = 0
write(1, "eject: `/dev/sdb1' is mounted at "..., 46) = 46
stat("/dev/sdb1", {st_mode=S_IFBLK|0660, st_rdev=makedev(8, 17), ...}) = 0
write(1, "eject: unmounting device `/dev/sd"..., 55) = 55
clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, 
child_tidptr=0x7fa6b84f4770) = 5256
wait4(-1, [{WIFEXITED(s) && WEXITSTATUS(s) == 0}], 0, NULL) = 5256
--- SIGCHLD (Child exited) @ 0 (0) ---
write(1, "eject: `/dev/sdb1' is a multipart"..., 46) = 46
open("/etc/mtab", O_RDONLY)             = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=659, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 
0x7fa6b8503000
read(3, "/dev/sda8 / ext3 rw,noatime 0 0\nt"..., 4096) = 659
read(3, ""..., 4096)                    = 0
close(3)                                = 0
munmap(0x7fa6b8503000, 4096)            = 0
open("/dev/sdb1", O_RDWR|O_NONBLOCK)    = 3
write(1, "eject: trying to eject `/dev/sdb1"..., 62) = 62
ioctl(3, CDROMEJECT, 0x7fa6b82e89a0)    = -1 EIO (Input/output error)
write(1, "eject: CD-ROM eject command faile"..., 35) = 35
write(1, "eject: trying to eject `/dev/sdb1"..., 55) = 55
ioctl(3, SG_GET_VERSION_NUM, 0x7fffc050691c) = 0
ioctl(3, SG_IO, {'S', SG_DXFER_NONE, cmd[6]=[1e, 00, 00, 00, 00, 00], 
mx_sb_len=32, iovec_count=0, dxfer_len=0, timeout=10000, flags=0, status=00, 
masked_status=00, sb[0]=[], host_status=0, driver_status=0, resid=0, 
duration=4, info=0}) = 0
ioctl(3, SG_IO, {'S', SG_DXFER_NONE, cmd[6]=[1b, 00, 00, 00, 01, 00], 
mx_sb_len=32, iovec_count=0, dxfer_len=0, timeout=10000, flags=0, status=00, 
masked_status=00, sb[0]=[], host_status=0, driver_status=0, resid=0, 
duration=0, info=0}) = 0
ioctl(3, SG_IO, {'S', SG_DXFER_NONE, cmd[6]=[1b, 00, 00, 00, 02, 00], 
mx_sb_len=32, iovec_count=0, dxfer_len=0, timeout=10000, flags=0, status=00, 
masked_status=00, sb[0]=[], host_status=0, driver_status=0, resid=0, 
duration=3680, info=0}) = 0
ioctl(3, BLKRRPART, 0x7fffc05067f0)     = -1 EINVAL (Invalid argument)
write(1, "eject: SCSI eject succeeded\n"..., 28) = 28
close(3)                                = 0
exit_group(0)                           = ?

Reply via email to