Re: 2.6.19-rc6-mm2

Jiri Kosina
2006-12-05T22:13:20Z

On Tue, 5 Dec 2006, Jiri Kosina wrote:

> It seemed to be 100% reproducible - happened on every boot of FC6
> system, so it was probably triggered by some raid/lvm command executed
> from init scripts after boot, but I didn't examine it further. As soon
> as I get to the machine where this happens, I will try to narrow it down
> to the exact userspace command that triggers it and will let you know
> (probably this evening).

OK, so more details follow (I am not sure how valuable they are, though).
The command that triggers the BUG is located quite at the beginning of FC6
/etc/rc.d/rc.sysinit, and it's this

[ -x /sbin/nash ] && echo "raidautorun /dev/md0" | nash --quiet

just after this, the BUG I sent you occurs, and nash is killed on SIGSEGV
(this command is executed before any other initialization of
DM/LVM/mapper/whatever happens). strace shows

[ ... ] (boring part stripped)
read(0, "raidautorun /dev/md0\n", 16384) = 21
read(0, "", 16384) = 0
access("/usr/bin/raidautorun", X_OK) = -1 ENOENT (No such file or directory)
access("/bin/raidautorun", X_OK) = -1 ENOENT (No such file or directory)
access("/sbin/raidautorun", X_OK) = -1 ENOENT (No such file or directory)
access("/usr/sbin/raidautorun", X_OK) = -1 ENOENT (No such file or directory)
access("raidautorun", X_OK) = -1 ENOENT (No such file or directory)
access("/dev/md0", F_OK) = -1 ENOENT (No such file or directory)
access("", F_OK) = -1 ENOENT (No such file or directory)
mkdir("", 0755) = -1 ENOENT (No such file or directory)
access("/dev", F_OK) = 0
mknod("/dev/md0", S_IFBLK|0600, makedev(9, 0)) = 0
open("/dev/md0", O_RDWR <unfinished ...>
+++ killed by SIGSEGV +++

(at this time, udev is already started). Compared to this command, being
run later on already booted system, after all the mdadm, mknod
/dev/mapper/*,etc. stuff has been done).

[ ... ]
2732 access("/dev", F_OK) = 0
2732 mknod("/dev/md0", S_IFBLK|0600, makedev(9, 0)) = 0
2732 open("/dev/md0", O_RDWR) = 3
2732 fcntl64(3, F_GETFD) = 0
2732 fcntl64(3, F_SETFD, FD_CLOEXEC) = 0
2732 ioctl(3, 0x914, 0) = 0
2732 close(3) = 0
2732 exit_group(0) = ?

(and this doesn't trigger the BUG).

--
Jiri Kosina