ubuntu precise, Installed version of mdadm is 3.2.3-2ubuntu1
mdadm segfaults on ubuntu precise during update-initramfs step. You can reproduce it by running the command separately. Stealing an older mdadm binary from an older ubuntu can be used as a workaround.
-------------------------
root@yow-lpgnfs-02:/home/paul# mdadm --detail --scan
Segmentation fault
root@yow-lpgnfs-02:/home/paul# dmesg
[ 577.478657] scsi_verify_blk_ioctl: 6 callbacks suppressed
[ 577.478661] mdadm: sending ioctl 1261 to a partition!
[ 577.478664] mdadm: sending ioctl 1261 to a partition!
[ 577.487510] mdadm: sending ioctl 1261 to a partition!
[ 577.487514] mdadm: sending ioctl 1261 to a partition!
[ 577.488595] mdadm: sending ioctl 1261 to a partition!
[ 577.488598] mdadm: sending ioctl 1261 to a partition!
[ 577.508385] mdadm: sending ioctl 1261 to a partition!
[ 577.508389] mdadm: sending ioctl 1261 to a partition!
[ 577.508680] mdadm: sending ioctl 1261 to a partition!
[ 577.508683] mdadm: sending ioctl 1261 to a partition!
[ 577.509875] mdadm[2244]: segfault at 0 ip 00007fc3b44bcb91 sp 00007fffca905c28 error 4 in libc-2.15.so[7fc3b4434000+1b2000]
root@yow-lpgnfs-02:/home/paul# gdb --args mdadm --detail --scan
GNU gdb (Ubuntu/Linaro 7.4-2012.02-0ubuntu2) 7.4-2012.02
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://bugs.launchpad.net/gdb-linaro/>...
Reading symbols from /sbin/mdadm...(no debugging symbols found)...done.
(gdb) run
Starting program: /sbin/mdadm --detail --scan
Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7aa5b91 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
(gdb) bt
#0 0x00007ffff7aa5b91 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x00007ffff7ae39c9 in fnmatch () from /lib/x86_64-linux-gnu/libc.so.6
#2 0x0000000000409e88 in ?? ()
#3 0x000000000040a1b3 in ?? ()
#4 0x000000000044d10b in ?? ()
#5 0x000000000044d585 in ?? ()
#6 0x000000000044d67d in ?? ()
#7 0x0000000000407335 in ?? ()
#8 0x00007ffff7a3e76d in __libc_start_main () from /lib/x86_64-linux-gnu/libc.so.6
#9 0x0000000000407ee9 in ?? ()
#10 0x00007fffffffe668 in ?? ()
#11 0x000000000000001c in ?? ()
#12 0x0000000000000003 in ?? ()
#13 0x00007fffffffe8a8 in ?? ()
#14 0x00007fffffffe8b4 in ?? ()
#15 0x00007fffffffe8bd in ?? ()
#16 0x0000000000000000 in ?? ()
(gdb)
ubuntu precise, Installed version of mdadm is 3.2.3-2ubuntu1
mdadm segfaults on ubuntu precise during update-initramfs step. You can reproduce it by running the command separately. Stealing an older mdadm binary from an older ubuntu can be used as a workaround.
------- ------- ------- ----
root@yow- lpgnfs- 02:/home/ paul# mdadm --detail --scan lpgnfs- 02:/home/ paul# dmesg blk_ioctl: 6 callbacks suppressed 15.so[7fc3b4434 000+1b2000]
Segmentation fault
root@yow-
[ 577.478657] scsi_verify_
[ 577.478661] mdadm: sending ioctl 1261 to a partition!
[ 577.478664] mdadm: sending ioctl 1261 to a partition!
[ 577.487510] mdadm: sending ioctl 1261 to a partition!
[ 577.487514] mdadm: sending ioctl 1261 to a partition!
[ 577.488595] mdadm: sending ioctl 1261 to a partition!
[ 577.488598] mdadm: sending ioctl 1261 to a partition!
[ 577.508385] mdadm: sending ioctl 1261 to a partition!
[ 577.508389] mdadm: sending ioctl 1261 to a partition!
[ 577.508680] mdadm: sending ioctl 1261 to a partition!
[ 577.508683] mdadm: sending ioctl 1261 to a partition!
[ 577.509875] mdadm[2244]: segfault at 0 ip 00007fc3b44bcb91 sp 00007fffca905c28 error 4 in libc-2.
------- ------- ------- -------
Using old v3.1.4 is a workaround:
root@yow- lpgnfs- 02:/home/ paul# mdadm --version lpgnfs- 02:/home/ paul# /sbin/mdadm.old --version lpgnfs- 02:/home/ paul# /sbin/mdadm.old --detail --scan e3a4f8ba: 63476e95: 1b06b14d lpgnfs- 02:/home/ paul#
mdadm - v3.2.3 - 23rd December 2011
root@yow-
mdadm - v3.1.4 - 31st August 2010
root@yow-
ARRAY /dev/md0 metadata=0.90 UUID=48165815:
root@yow-
------- ------- ------- ------- ------
root@yow- lpgnfs- 02:/home/ paul# gdb --args mdadm --detail --scan 02-0ubuntu2) 7.4-2012.02 gnu.org/ licenses/ gpl.html> bugs.launchpad. net/gdb- linaro/>...
GNU gdb (Ubuntu/Linaro 7.4-2012.
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://
Reading symbols from /sbin/mdadm...(no debugging symbols found)...done.
(gdb) run
Starting program: /sbin/mdadm --detail --scan
Program received signal SIGSEGV, Segmentation fault. 64-linux- gnu/libc. so.6 64-linux- gnu/libc. so.6 64-linux- gnu/libc. so.6 64-linux- gnu/libc. so.6
0x00007ffff7aa5b91 in ?? () from /lib/x86_
(gdb) bt
#0 0x00007ffff7aa5b91 in ?? () from /lib/x86_
#1 0x00007ffff7ae39c9 in fnmatch () from /lib/x86_
#2 0x0000000000409e88 in ?? ()
#3 0x000000000040a1b3 in ?? ()
#4 0x000000000044d10b in ?? ()
#5 0x000000000044d585 in ?? ()
#6 0x000000000044d67d in ?? ()
#7 0x0000000000407335 in ?? ()
#8 0x00007ffff7a3e76d in __libc_start_main () from /lib/x86_
#9 0x0000000000407ee9 in ?? ()
#10 0x00007fffffffe668 in ?? ()
#11 0x000000000000001c in ?? ()
#12 0x0000000000000003 in ?? ()
#13 0x00007fffffffe8a8 in ?? ()
#14 0x00007fffffffe8b4 in ?? ()
#15 0x00007fffffffe8bd in ?? ()
#16 0x0000000000000000 in ?? ()
(gdb)
------- ------- ------- ------- ---
Tail end of an strace:
open("/dev/sda1", O_RDONLY|O_DIRECT) = 3 S_IFBLK| 0660, st_rdev=makedev(8, 1), ...}) = 0 \251\0\ 0\0\0Z\ 0\0\0\0\ 0\0\0\0\ 0\0\0\25X\ 26H\332\ 374NN\0\ 0\0\0". .., 4096) = 4096 S_IFBLK| 0660, st_rdev=makedev(8, 1), ...}) = 0 0\0\0\0\ 0\0\0\0\ 0\0\0\0\ 0\0\0\0\ 0\0\0\0\ 0\0\0\0\ 0\0\0\0\ 0"..., 1024) = 1024 S_IFBLK| 0660, st_rdev=makedev(8, 1), ...}) = 0 0\0\0\0\ 0\0\0\0\ 0\0\0\0\ 0\0\0\0\ 0\0\0\0\ 0\0\0\0\ 0\0\0\0\ 0"..., 1024) = 1024 S_IFBLK| 0660, st_rdev=makedev(8, 1), ...}) = 0 0\21\4\ 0\0!\4\ 0\0\331[ \365\37\ 2\0\4\0\ 0\0\0\0\ 0\0\0\0\ 0\0E,". .., 1024) = 1024 S_IFBLK| 0660, st_rdev=makedev(8, 1), ...}) = 0 0\0\0\0\ 0\0\0\0\ 0\0\0\0\ 0\0\0\0\ 0\0\0\0\ 0\0\0\0\ 0\0\0\0\ 0"..., 512) = 512 0\0\0\0\ 0\0\0\0\ 0\0\0\0\ 0\0\0\0\ 0\0\0\0\ 0\0\0\0\ 0\0\0\0\ 0"..., 512) = 512 S_IFBLK| 0660, st_rdev=makedev(8, 1), ...}) = 0 \251\0\ 0\0\0Z\ 0\0\0\0\ 0\0\0\0\ 0\0\0\25X\ 26H\332\ 374NN\0\ 0\0\0". .., 4096) = 4096 S_IFBLK| 0660, st_rdev=makedev(8, 1), ...}) = 0 \251\0\ 0\0\0Z\ 0\0\0\0\ 0\0\0\0\ 0\0\0\25X\ 26H\332\ 374NN\0\ 0\0\0". .., 4096) = 4096
fstat(3, {st_mode=
ioctl(3, BLKGETSIZE64, 0x7fffc589fda0) = 0
ioctl(3, BLKFLSBUF, 0) = 0
lseek(3, 250055622656, SEEK_SET) = 250055622656
read(3, "\374N+
fstat(3, {st_mode=
ioctl(3, BLKGETSIZE64, 0x7fffc589fc50) = 0
ioctl(3, BLKFLSBUF, 0) = 0
lseek(3, 250055680000, SEEK_SET) = 250055680000
ioctl(3, BLKSSZGET, 0x7fffc589fc4c) = 0
read(3, "\0\0\0\
fstat(3, {st_mode=
ioctl(3, BLKGETSIZE64, 0x7fffc589fc50) = 0
ioctl(3, BLKFLSBUF, 0) = 0
lseek(3, 0, SEEK_SET) = 0
ioctl(3, BLKSSZGET, 0x7fffc589fc4c) = 0
read(3, "\0\0\0\
fstat(3, {st_mode=
ioctl(3, BLKGETSIZE64, 0x7fffc589fc50) = 0
ioctl(3, BLKFLSBUF, 0) = 0
lseek(3, 4096, SEEK_SET) = 4096
ioctl(3, BLKSSZGET, 0x7fffc589fc4c) = 0
read(3, "\1\4\0\
fstat(3, {st_mode=
ioctl(3, BLKGETSIZE64, 0x7fffc589fdb0) = 0
ioctl(3, BLKPG, 0x7fffc589fd10) = -1 EINVAL (Invalid argument)
ioctl(3, BLKPG, 0x7fffc589fd20) = -1 EINVAL (Invalid argument)
ioctl(3, BLKFLSBUF, 0) = 0
lseek(3, 0, SEEK_SET) = 0
read(3, "\0\0\0\
ioctl(3, BLKFLSBUF, 0) = 0
lseek(3, 0, SEEK_SET) = 0
read(3, "\0\0\0\
fstat(3, {st_mode=
ioctl(3, BLKGETSIZE64, 0x7fffc589fda0) = 0
ioctl(3, BLKFLSBUF, 0) = 0
lseek(3, 250055622656, SEEK_SET) = 250055622656
read(3, "\374N+
fstat(3, {st_mode=
ioctl(3, BLKGETSIZE64, 0x7fffc589ff80) = 0
ioctl(3, BLKFLSBUF, 0) = 0
lseek(3, 250055622656, SEEK_SET) = 250055622656
read(3, "\374N+
close(3) = 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
------- ------- ------- ------- ------- -- lpgnfs- 02:/home/ paul# cat /proc/mdstat
root@yow-
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid0 sda1[0] sdb1[1]
488389888 blocks 64k chunks
unused devices: <none> lpgnfs- 02:/home/ paul# cat /proc/partitions
root@yow-
major minor #blocks name
8 0 293036184 sda lpgnfs- 02:/home/ paul#
8 1 244195008 sda1
8 2 48837600 sda2
8 16 244198584 sdb
8 17 244195008 sdb1
9 0 488389888 md0
root@yow-