[Bug 1691763] Re: mdadm segfaults in lxd container
lordaro
1691763 at bugs.launchpad.net
Tue Oct 24 16:24:02 UTC 2017
I just encountered this myself. Was a bit bored, so did some testing.
mdadm master HEAD (4.0) does not segfault, nor does the HEAD of the
branch mdadm-3.3.4
However, if you acquire the actual version of source used by ubuntu
(3.3, from 2013(!)) and compile, and run through gdb, you get:
Program received signal SIGSEGV, Segmentation fault.
strlen () at ../sysdeps/x86_64/strlen.S:106
106 ../sysdeps/x86_64/strlen.S: No such file or directory.
(gdb) bt
#0 strlen () at ../sysdeps/x86_64/strlen.S:106
#1 0x00007ffff7a9847e in __GI___strdup (s=0x0) at strdup.c:41
#2 0x0000000000477ddf in xstrdup (str=0x0) at xmalloc.c:66
#3 0x0000000000435009 in add_new_arrays (mdstat=0x6b4480, statelist=0x7fffffffe020, test=0, info=0x7fffffffe070)
at Monitor.c:670
#4 0x00000000004336e7 in Monitor (devlist=0x0, mailaddr=0x6b4510 "root", alert_cmd=0x0, c=0x7fffffffe210,
daemonise=0, oneshot=1, dosyslog=0, pidfile=0x0, increments=20, share=0) at Monitor.c:223
#5 0x0000000000406cd1 in main (argc=4, argv=0x7fffffffe6d8) at mdadm.c:1448
Monitor.c:670 is
st->devname = xstrdup(get_md_name(mse->devnm));
with the obvious unchecked return value of get_md_name
Looking through the git history, this was fixed with
http://git.neil.brown.name/?p=mdadm.git;a=commitdiff;h=1e08717f0b7856b389e9d5eb2dc330d146636183
I'd recommend backporting this patch :)
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to mdadm in Ubuntu.
https://bugs.launchpad.net/bugs/1691763
Title:
mdadm segfaults in lxd container
Status in mdadm package in Ubuntu:
Confirmed
Bug description:
Inside a 16.04 lxd container (running in default unprivileged mode),
inside a 16.04 host:
# /etc/cron.daily/mdadm
Segmentation fault (core dumped)
# strace -f /sbin/mdadm --monitor --scan --oneshot
...
brk(0x1ba1000) = 0x1ba1000
mknod("/dev/.tmp.md1", S_IFBLK|0600, makedev(9, 1)) = -1 EPERM (Operation not permitted)
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0} ---
+++ killed by SIGSEGV (core dumped) +++
Segmentation fault (core dumped)
This is troublesome because (a) mdadm is installed by default, (b)
mdadm runs under a daily cron job, (c) cron sends out errors via
E-mail. So you get spammed from each container.
As others have observed[^1], the workaround is to remove mdadm from
inside lxd containers.
[^1] https://blog.sleeplessbeastie.eu/2017/05/04/how-to-fix-mdadm-
segfault-inside-lxc-container/
ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: mdadm 3.3-2ubuntu7.2
ProcVersionSignature: Ubuntu 4.8.0-52.55~16.04.1-generic 4.8.17
Uname: Linux 4.8.0-52-generic x86_64
ApportVersion: 2.20.1-0ubuntu2.5
Architecture: amd64
Date: Thu May 18 13:48:22 2017
Lsusb:
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 002: ID 413c:a001 Dell Computer Corp. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
MachineType: Dell Inc. PowerEdge R230
ProcEnviron:
TERM=xterm-256color
PATH=(custom, no user)
ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-4.8.0-52-generic root=/dev/mapper/ix--mon2-root ro console=tty1 console=ttyS0,115200
SourcePackage: mdadm
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 01/12/2017
dmi.bios.vendor: Dell Inc.
dmi.bios.version: 2.0.8
dmi.board.name: 0DWX9P
dmi.board.vendor: Dell Inc.
dmi.board.version: A00
dmi.chassis.type: 23
dmi.chassis.vendor: Dell Inc.
dmi.modalias: dmi:bvnDellInc.:bvr2.0.8:bd01/12/2017:svnDellInc.:pnPowerEdgeR230:pvr:rvnDellInc.:rn0DWX9P:rvrA00:cvnDellInc.:ct23:cvr:
dmi.product.name: PowerEdge R230
dmi.sys.vendor: Dell Inc.
etc.blkid.tab: Error: [Errno 2] No such file or directory: '/etc/blkid.tab'
initrd.files: Error: [Errno 2] No such file or directory: '/boot/initrd.img-4.8.0-52-generic'
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/mdadm/+bug/1691763/+subscriptions
More information about the foundations-bugs
mailing list