Package: mdadm / 4.4-13

Metadata

Package Version Patches format
mdadm 4.4-13 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
debian/0001 fix manpages.patch | (download)

md.4 | 34 17 + 17 - 0 !
mdadm.8.in | 16 8 + 8 - 0 !
mdmon.8 | 2 1 + 1 - 0 !
3 files changed, 26 insertions(+), 26 deletions(-)

 fix typos and macro issues in manpages
 (Closes: #915182, #916946, #962946, #933773).

debian/0002 host name in default mailfrom.patch | (download)

mdmonitor.c | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 add host name to default mailfrom (closes: #1006464).
 The host on which the error occurred is mentioned in the subject and also in
 the message body, but some may find it useful in the From address, as well.

debian/0003 exit gracefully when md device not found.patch | (download)

mdmonitor.c | 10 8 + 2 - 0 !
1 file changed, 8 insertions(+), 2 deletions(-)

 exit gracefully when md device not found (closes: #970329).

debian/0004 sha1 includes.patch | (download)

sha1.h | 8 4 + 4 - 0 !
1 file changed, 4 insertions(+), 4 deletions(-)

 do not #include ansidecl.h from sha1.h, use system headers.
 In 3.2.5 version of mdadm, new sha1 implementation has been included
 which tries to include ansidecl.h header which is internal to some
 other project. But this #include isn't really necessary, since this
 implementation does not actually use any defines from ansidecl.h. So
 just remove the #include, instead of adding a new external dependency.
 .
 References: http://www.spinics.net/lists/raid/msg38859.html
 .
 While at it, unconditionally include system headers like limits.h and
 stdint.h, since on a Linux system these headers are available, and
 these contains definitive information about real system types than
 any guesses.

debian/0006 no Werror.patch | (download)

Makefile | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 remove -werror from compiler flags.
 -Werror seems like a bad idea on released/packaged code because a toolchain
 update (introducing new warnings) could break the build. We'll let upstream
 use it to beautify the code, but remove it for out builds.

debian/0007 test installed.patch | (download)

tests/func.sh | 4 0 + 4 - 0 !
1 file changed, 4 deletions(-)

 test installed files (closes: #872118).
 The test suite seems to check the executable bit on the local build product
 'mdadm' but runs all programs from the system PATH. This change should test
 the installed version.
 .
 I believe this change tests the installed version, but that hypothesis is not
 supported by much else. The autopkgtest restriction isolation-machine made it
debian/0008 randomize timers.patch | (download)

systemd/mdcheck_continue.timer | 4 3 + 1 - 0 !
systemd/mdcheck_start.timer | 2 2 + 0 - 0 !
systemd/mdmonitor-oneshot.service | 5 1 + 4 - 0 !
systemd/mdmonitor-oneshot.timer | 4 3 + 1 - 0 !
4 files changed, 9 insertions(+), 6 deletions(-)

 randomize md array check timers (lp: #1815201).

debian/0009 systemd honor debconf daily scan.patch | (download)

systemd/mdmonitor-oneshot.service | 3 2 + 1 - 0 !
1 file changed, 2 insertions(+), 1 deletion(-)

 honor the debconf mdadm/autoscan setting in the systemd timer
 There was an mdadm/autoscan template added to allow users to disable this
 feature via debconf. This is exposed as a variable in /etc/default/mdadm,
 which was processed by a cronjob. Dropping the cronjob and moving to a
 systemd timer, we need to add our own processing.

debian/0010 mdcheck fix empty spaces in timer unit files.patch | (download)

systemd/mdcheck_continue.timer | 2 1 + 1 - 0 !
systemd/mdcheck_start.timer | 4 2 + 2 - 0 !
systemd/mdmonitor-oneshot.timer | 2 1 + 1 - 0 !
3 files changed, 4 insertions(+), 4 deletions(-)

 mdcheck fix empty spaces in timer unit files (lp: #1852747).
 dh_installsystemd is failling thus FBTFS because of the spaces
 in the systemd unit timer files directive.

debian/0011 systemd directory.patch | (download)

Makefile | 6 5 + 1 - 0 !
1 file changed, 5 insertions(+), 1 deletion(-)

 patch makefile to use pkg-config systemd to discover systemd unit dir.

debian/0012 bin directory.patch | (download)

Makefile | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 patch makefile to use /usr/sbin instead of /sbin.

debian/0013 xmalloc ftbfs.patch | (download)

raid6check.c | 2 2 + 0 - 0 !
1 file changed, 2 insertions(+)

 adding missing header to fix ftbfs.

debian/0014 monitor nonabsolute devnames.patch | (download)

mdmonitor.c | 6 4 + 2 - 0 !
1 file changed, 4 insertions(+), 2 deletions(-)

 fix --monitor --scan with relative array devnames (closes: #1114744).
 Since commit e702f392959d ("Mdmonitor: Fix segfault"), when configuration
 files used non-absolute ARRAY device names, commands like `mdadm --monitor
 --scan` failed with `mdadm: error opening devname: No such file or
 directory` unless run from the `/dev/md` directory.

upstream/0001 manpage remove bitmap.patch | (download)

mdadm.8.in | 55 6 + 49 - 0 !
1 file changed, 6 insertions(+), 49 deletions(-)

---
debian/0015 monitor memory leak.patch | (download)

udev.c | 8 6 + 2 - 0 !
1 file changed, 6 insertions(+), 2 deletions(-)

 memory leak in mdadm --monitor --scan (closes: #1115497).
 At mdadm/udev.c:153:
 ...
 if (udev_monitor_receive_device(udev_monitor))
   return UDEV_STATUS_SUCCESS; /* event detected */
 ...
 .
 According to libudev docs:
 On success, udev_monitor_receive_device() returns a pointer to a newly referenced device that was received via the monitor. The caller is responsible to drop this reference when done.
 .
 As you can see, the reference to the device never gets dropped.
 We put together a quick patch, which seems to have fixed the issue or at least substantially reduced the amount of leaks.
 .
 Since we have no experience with the codebase, we have no idea about the implications of these changes.
 We would appreciate if someone took a closer look.
 .
 Additionaly as a workaround, passing MDADM_NO_UDEV=1 env to mdadm stops the leaks as well, since it bypasses the leaking codepath.