[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#863862: jessie-pu: package multipath-tools/0.5.0-6+deb8u2



Package: release.debian.org
Severity: normal
Tags: jessie
User: release.debian.org@packages.debian.org
Usertags: pu

Dear Release Team,

I am filing this bug report and reivew request, now, just to keep it in
the queue. I completely had forgotten to queue it for the next Jessie
update.

Attached debdiff fixes 2 annoying issues with multipath-tools.

1. Fixes a crash where the vendor or product id for the scsi block
device is missing.

2. Fixes a locking issue which got introduced because of udev's way of
behaving.

Both fixes are in upstream's repository and also already part of
Stretch.

Please give me an acknowledgement for the go ahead to upload. I have not
uploaded it yet.


Thanks

-- System Information:
Debian Release: 9.0
  APT prefers testing-debug
  APT policy: (990, 'testing-debug'), (990, 'testing'), (500, 'unstable-debug'), (500, 'unstable'), (101, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.10.17+ (SMP w/4 CPU cores)
Locale: LANG=en_IN.UTF-8, LC_CTYPE=en_IN.UTF-8 (charmap=UTF-8), LANGUAGE=en_IN:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
diff -Nru multipath-tools-0.5.0/debian/changelog multipath-tools-0.5.0/debian/changelog
--- multipath-tools-0.5.0/debian/changelog	2015-10-21 15:23:45.000000000 +0545
+++ multipath-tools-0.5.0/debian/changelog	2017-06-01 11:45:39.000000000 +0545
@@ -1,3 +1,13 @@
+multipath-tools (0.5.0-6+deb8u3) jessie; urgency=medium
+
+  * Refresh patches
+  * Fix segfault is either of vid/pid is missing in blacklist
+    (Closes: #751993)
+  * Add patch to fix device locking issue in between multipath and udev
+    (Closes: #799781)
+
+ -- Ritesh Raj Sarraf <rrs@debian.org>  Thu, 01 Jun 2017 11:45:39 +0545
+
 multipath-tools (0.5.0-6+deb8u2) jessie; urgency=medium
 
   * fix discovery of devices with blank rev
diff -Nru multipath-tools-0.5.0/debian/patches/0009-hardened-build-flags.patch multipath-tools-0.5.0/debian/patches/0009-hardened-build-flags.patch
--- multipath-tools-0.5.0/debian/patches/0009-hardened-build-flags.patch	2015-10-21 15:22:21.000000000 +0545
+++ multipath-tools-0.5.0/debian/patches/0009-hardened-build-flags.patch	2017-06-01 11:36:41.000000000 +0545
@@ -1,8 +1,6 @@
 Multipath Hardening Patch
-Index: multipath-tools/kpartx/Makefile
-===================================================================
---- multipath-tools.orig/kpartx/Makefile	2014-03-09 16:01:42.676339807 +0530
-+++ multipath-tools/kpartx/Makefile	2014-03-09 16:02:48.380338649 +0530
+--- a/kpartx/Makefile
++++ b/kpartx/Makefile
 @@ -12,7 +12,7 @@
  	CFLAGS += -DLIBDM_API_COOKIE
  endif
@@ -12,11 +10,9 @@
  OBJS = bsd.o dos.o kpartx.o solaris.o unixware.o dasd.o sun.o \
         gpt.o mac.o ps3.o crc32.o lopart.o xstrncpy.o devmapper.o
  EXEC = kpartx
-Index: multipath-tools/Makefile.inc
-===================================================================
---- multipath-tools.orig/Makefile.inc	2014-03-09 16:01:42.676339807 +0530
-+++ multipath-tools/Makefile.inc	2014-03-09 16:01:42.672339807 +0530
-@@ -49,7 +49,8 @@
+--- a/Makefile.inc
++++ b/Makefile.inc
+@@ -52,7 +52,8 @@
  endif
  
  OPTFLAGS     = $(RPM_OPT_FLAGS) -Wunused -Wstrict-prototypes
diff -Nru multipath-tools-0.5.0/debian/patches/0015-libmultipath-property-whitelist-SCSI_IDENT.patch multipath-tools-0.5.0/debian/patches/0015-libmultipath-property-whitelist-SCSI_IDENT.patch
--- multipath-tools-0.5.0/debian/patches/0015-libmultipath-property-whitelist-SCSI_IDENT.patch	2015-10-21 15:22:21.000000000 +0545
+++ multipath-tools-0.5.0/debian/patches/0015-libmultipath-property-whitelist-SCSI_IDENT.patch	2017-06-01 11:36:41.000000000 +0545
@@ -14,11 +14,9 @@
 Signed-off-by: Hannes Reinecke <hare@suse.de>
 ---
 
-diff --git a/libmultipath/blacklist.c b/libmultipath/blacklist.c
-index cea128c..30c5031 100644
 --- a/libmultipath/blacklist.c
 +++ b/libmultipath/blacklist.c
-@@ -196,7 +196,7 @@ setup_default_blist (struct config * conf)
+@@ -176,7 +176,7 @@
  	if (store_ble(conf->blist_devnode, str, ORIGIN_DEFAULT))
  		return 1;
  
diff -Nru multipath-tools-0.5.0/debian/patches/0016-multipath-vid-pid-crash.patch multipath-tools-0.5.0/debian/patches/0016-multipath-vid-pid-crash.patch
--- multipath-tools-0.5.0/debian/patches/0016-multipath-vid-pid-crash.patch	1970-01-01 05:30:00.000000000 +0530
+++ multipath-tools-0.5.0/debian/patches/0016-multipath-vid-pid-crash.patch	2017-06-01 11:36:41.000000000 +0545
@@ -0,0 +1,47 @@
+From 5195abd56cdfbc12c32c0ad3127a32643d11db4b Mon Sep 17 00:00:00 2001
+From: Benjamin Marzinski <bmarzins@redhat.com>
+Date: Sat, 7 Mar 2015 21:31:39 -0600
+Subject: libmutipath: allow blanks in device blacklist
+
+As Brian De Wolf noticed, multipath crashes if you don't have both
+vendor and product specified in a device blacklist entry. This patch
+makes device blacklists work when either the vendor or the product is
+blank. If both are missing, the entry is ignored.
+
+Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
+---
+ libmultipath/blacklist.c | 16 ++++++++++++----
+ 1 file changed, 12 insertions(+), 4 deletions(-)
+
+--- a/libmultipath/blacklist.c
++++ b/libmultipath/blacklist.c
+@@ -129,8 +129,12 @@
+ 	struct blentry_device * ble;
+ 
+ 	vector_foreach_slot (elist, ble, i) {
+-		if (!regexec(&ble->vendor_reg, vendor, 0, NULL, 0) &&
+-		    !regexec(&ble->product_reg, product, 0, NULL, 0))
++		if (!ble->vendor && !ble->product)
++			continue;
++		if ((!ble->vendor ||
++		     !regexec(&ble->vendor_reg, vendor, 0, NULL, 0)) &&
++		    (!ble->product ||
++		     !regexec(&ble->product_reg, product, 0, NULL, 0)))
+ 			return 1;
+ 	}
+ 	return 0;
+@@ -143,8 +147,12 @@
+ 	struct blentry_device * ble;
+ 
+ 	vector_foreach_slot (blist, ble, i) {
+-		if (!regexec(&ble->vendor_reg, vendor, 0, NULL, 0) &&
+-		    !regexec(&ble->product_reg, product, 0, NULL, 0))
++		if (!ble->vendor && !ble->product)
++			continue;
++		if ((!ble->vendor ||
++		     !regexec(&ble->vendor_reg, vendor, 0, NULL, 0)) &&
++		    (!ble->product ||
++		     !regexec(&ble->product_reg, product, 0, NULL, 0)))
+ 			return 1;
+ 	}
+ 	return 0;
diff -Nru multipath-tools-0.5.0/debian/patches/0017-multipath-udev-use-shared-lock.patch multipath-tools-0.5.0/debian/patches/0017-multipath-udev-use-shared-lock.patch
--- multipath-tools-0.5.0/debian/patches/0017-multipath-udev-use-shared-lock.patch	1970-01-01 05:30:00.000000000 +0530
+++ multipath-tools-0.5.0/debian/patches/0017-multipath-udev-use-shared-lock.patch	2017-06-01 11:36:41.000000000 +0545
@@ -0,0 +1,38 @@
+From 5ec07b3af8d1c3a6c7ba1680af20b80ddce4f962 Mon Sep 17 00:00:00 2001
+From: Hannes Reinecke <hare@suse.de>
+Date: Tue, 24 Jun 2014 08:49:15 +0200
+Subject: [PATCH 1/1] libmultipath: use a shared lock to co-operate with udev
+
+udev since v214 is placing a shared lock on the device node
+whenever it's processing the event. This introduces a race
+condition with multipathd, as multipathd is processing the
+event for the block device at the same time as udev is
+processing the events for the partitions.
+And a lock on the partitions will also be visible on the
+block device itself, hence multipathd won't be able to
+lock the device.
+When multipath manages to take a lock on the device,
+udev will fail, and consequently ignore this entire event.
+Which in turn might cause the system to malfunction as it
+might have been a crucial event like 'remove' or 'link down'.
+
+So we should better use LOCK_SH here; with that the flock
+call in multipathd _and_ udev will succeed and the events
+can be processed.
+
+Signed-off-by: Hannes Reinecke <hare@suse.de>
+---
+ libmultipath/configure.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/libmultipath/configure.c
++++ b/libmultipath/configure.c
+@@ -308,7 +308,7 @@
+ 		if (!pgp->paths)
+ 			continue;
+ 		vector_foreach_slot(pgp->paths, pp, j) {
+-			if (lock && flock(pp->fd, LOCK_EX | LOCK_NB) &&
++			if (lock && flock(pp->fd, LOCK_SH | LOCK_NB) &&
+ 			    errno == EWOULDBLOCK)
+ 				goto fail;
+ 			else if (!lock)
diff -Nru multipath-tools-0.5.0/debian/patches/series multipath-tools-0.5.0/debian/patches/series
--- multipath-tools-0.5.0/debian/patches/series	2015-10-21 15:22:21.000000000 +0545
+++ multipath-tools-0.5.0/debian/patches/series	2017-06-01 11:36:41.000000000 +0545
@@ -6,3 +6,5 @@
 0013-fix-spelling-error.patch
 0014-libmultipath-discovery-blank-rev-attr.patch
 0015-libmultipath-property-whitelist-SCSI_IDENT.patch
+0016-multipath-vid-pid-crash.patch
+0017-multipath-udev-use-shared-lock.patch

Reply to: