Bug#855585: multipath-tools 0.6.4-4 debdiff review
Ritesh Raj Sarraf
rrs at debian.org
Mon Feb 20 14:50:34 UTC 2017
Dear Release Team,
Package: multipath-tools
Version: 0.6.4-4
Request: Pre-Approval
Please find attached a debdiff of 0.6.4-3 and 0.6.4-4.
These are minor changes, which should qualify for an upload exception. The new
file additions are mostly autopkg tests related, which have no impact on the
software. The other changes are good to have for Stretch.
changelog | 16 +++
control | 4
initramfs/hooks | 2
initramfs/local-top | 6 -
tests/control | 8 +
tests/kpartx-file-loopback | 51 +++++++++++
tests/tgtbasedmpaths | 204 +++++++++++++++++++++++++++++++++++++++++++++
7 files changed, 285 insertions(+), 6 deletions(-)
I have not made the upload to Unstable yet. Please review the diff and give me
an ACK. I will then upload to Unstable and file an "upload exception" bug.
--
Ritesh Raj Sarraf | http://people.debian.org/~rrs
Debian - The Universal Operating System
-------------- next part --------------
changelog | 16 +++
control | 4
initramfs/hooks | 2
initramfs/local-top | 6 -
tests/control | 8 +
tests/kpartx-file-loopback | 51 +++++++++++
tests/tgtbasedmpaths | 204 +++++++++++++++++++++++++++++++++++++++++++++
7 files changed, 285 insertions(+), 6 deletions(-)
diff -Nru multipath-tools-0.6.4/debian/changelog multipath-tools-0.6.4/debian/changelog
--- multipath-tools-0.6.4/debian/changelog 2017-01-25 14:58:53.000000000 +0530
+++ multipath-tools-0.6.4/debian/changelog 2017-02-20 19:36:31.000000000 +0530
@@ -1,3 +1,19 @@
+multipath-tools (0.6.4-4) unstable; urgency=medium
+
+ [ Ritesh Raj Sarraf ]
+ * [65ba796] Fix path for udevadm, which now resides in /bin.
+ Thanks to Michael Biebl (Closes: #852586)
+ * [5291947] Drop non-existent dm-emc module and include
+ dm-round-robin, in initramfs.
+ Thanks to Allan Jacobsen (Closes: #855585)
+
+ [ Christian Ehrhardt ]
+ * [6159c78] debian/control: Bump to an updated udev dependency
+ * [8649315] debian/tests/kpartx-file-loopback: test kpartx
+ * [137dcc1] add Test using tgt and open-iscsi
+
+ -- Ritesh Raj Sarraf <rrs at debian.org> Mon, 20 Feb 2017 19:36:31 +0530
+
multipath-tools (0.6.4-3) unstable; urgency=medium
* [3eecdba] Include libmpathcmd.so in the udeb package.
diff -Nru multipath-tools-0.6.4/debian/control multipath-tools-0.6.4/debian/control
--- multipath-tools-0.6.4/debian/control 2017-01-23 16:51:48.000000000 +0530
+++ multipath-tools-0.6.4/debian/control 2017-02-20 19:36:31.000000000 +0530
@@ -11,7 +11,7 @@
Package: multipath-tools
Architecture: linux-any
-Depends: ${shlibs:Depends}, ${misc:Depends}, udev (>= 0.124), kpartx (>= ${binary:Version}), lsb-base (>= 3.0-6), libaio1 (>= 0.3.106-8), sg3-utils-udev
+Depends: ${shlibs:Depends}, ${misc:Depends}, udev (>> 136-1), kpartx (>= ${binary:Version}), lsb-base (>= 3.0-6), libaio1 (>= 0.3.106-8), sg3-utils-udev
Breaks: multipath-tools-initramfs (<= 1.0.1),
multipath-tools-boot (<= 0.4.8+git0.761c66f-2~)
Suggests: multipath-tools-boot
@@ -24,7 +24,7 @@
Package: kpartx
Architecture: linux-any
-Depends: ${shlibs:Depends}, ${misc:Depends}, udev (>> 0.086), dmsetup (>= 2:1.02.24)
+Depends: ${shlibs:Depends}, ${misc:Depends}, udev (>> 136-1), dmsetup (>= 2:1.02.24)
Replaces: multipath-tools (<< 0.4.7-3)
Description: create device mappings for partitions
Kpartx can be used to set up device mappings for the partitions of any
diff -Nru multipath-tools-0.6.4/debian/initramfs/hooks multipath-tools-0.6.4/debian/initramfs/hooks
--- multipath-tools-0.6.4/debian/initramfs/hooks 2016-12-08 23:56:02.000000000 +0530
+++ multipath-tools-0.6.4/debian/initramfs/hooks 2017-02-20 19:36:31.000000000 +0530
@@ -48,7 +48,7 @@
[ -r /etc/multipath.conf ] && cp /etc/multipath.conf $DESTDIR/etc/
add_bindings
-for x in dm-multipath dm-service-time dm-round-robin dm-emc; do
+for x in dm-multipath dm-service-time dm-round-robin; do
manual_add_modules ${x}
done
diff -Nru multipath-tools-0.6.4/debian/initramfs/local-top multipath-tools-0.6.4/debian/initramfs/local-top
--- multipath-tools-0.6.4/debian/initramfs/local-top 2016-12-08 23:56:02.000000000 +0530
+++ multipath-tools-0.6.4/debian/initramfs/local-top 2017-02-20 19:36:31.000000000 +0530
@@ -26,7 +26,7 @@
maybe_break pre-multipath
VERBOSITY=0
-MP_MODULES="dm-multipath dm-emc"
+MP_MODULES="dm-multipath dm-round-robin"
if [ ! -e /sbin/multipath ]; then
exit 0
@@ -50,8 +50,8 @@
/sbin/dmsetup ls --target multipath --exec "/sbin/kpartx -a -p -part" >/dev/null
fi
-if [ -x /sbin/udevadm ]; then
- /sbin/udevadm settle --timeout=10
+if [ -x /bin/udevadm ]; then
+ /bin/udevadm settle --timeout=10
fi
maybe_break post-multipath
diff -Nru multipath-tools-0.6.4/debian/tests/control multipath-tools-0.6.4/debian/tests/control
--- multipath-tools-0.6.4/debian/tests/control 1970-01-01 05:30:00.000000000 +0530
+++ multipath-tools-0.6.4/debian/tests/control 2017-02-20 19:36:31.000000000 +0530
@@ -0,0 +1,8 @@
+
+Tests: kpartx-file-loopback
+Depends: kpartx, qemu-utils, gdisk
+Restrictions: needs-root, isolation-machine
+
+Tests: tgtbasedmpaths
+Depends: multipath-tools, tgt, open-iscsi, fio, lsscsi
+Restrictions: needs-root isolation-machine allow-stderr
diff -Nru multipath-tools-0.6.4/debian/tests/kpartx-file-loopback multipath-tools-0.6.4/debian/tests/kpartx-file-loopback
--- multipath-tools-0.6.4/debian/tests/kpartx-file-loopback 1970-01-01 05:30:00.000000000 +0530
+++ multipath-tools-0.6.4/debian/tests/kpartx-file-loopback 2017-02-20 19:36:31.000000000 +0530
@@ -0,0 +1,51 @@
+#!/bin/sh
+# autopkgtest check: Try to loopback-mount a disk image.
+# (C) 2016 Canonical Ltd.
+# Author: Mathieu Trudel-Lapierre <mathieu-tl at ubuntu.com>
+
+set -e
+
+WORKDIR=$(mktemp -d)
+trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
+cd $WORKDIR
+
+DATAFILE=foo.img
+qemu-img create "$DATAFILE" 20M
+sgdisk -n 1 "$DATAFILE"
+kpartx -asv "$DATAFILE"
+udevadm settle
+loopdev=$(kpartx -lv "$DATAFILE" | awk '{ print $5; }')
+if losetup "$loopdev" 2>/dev/null | grep -qc "$loopdev"; then
+ echo "standard_filename: OK"
+ kpartx -dsv "$DATAFILE"
+ losetup
+ dmsetup ls --tree -o blkdevname
+ (losetup -j "$DATAFILE" | grep -qc $loopdev ) \
+ && ( echo "standard_filename_cleanup: FAIL"; exit 4 )
+ echo "standard_filename_cleanup: OK"
+else
+ echo "standard_filename: FAIL"
+ echo "standard_filename_cleanup: ERROR"
+ exit 6
+fi
+
+DATAFILE="fou du FaFa.img"
+qemu-img create "$DATAFILE" 20M
+sgdisk -n 1 "$DATAFILE"
+kpartx -asv "$DATAFILE"
+udevadm settle
+loopdev=$(kpartx -lv "$DATAFILE" | awk '{ print $5; }')
+if losetup "$loopdev" 2>/dev/null | grep -qc "$loopdev"; then
+ echo "filename_with_spaces: OK"
+ kpartx -dsv "$DATAFILE"
+ losetup
+ dmsetup ls --tree -o blkdevname
+ (losetup -j "$DATAFILE" | grep -qc $loopdev ) \
+ && ( echo "filename_with_spaces_cleanup: FAIL"; exit 4 )
+ echo "filename_with_spaces_cleanup: OK"
+else
+ echo "filename_with_spaces: FAIL"
+ echo "filename_with_spaces_cleanup: ERROR"
+ exit 6
+fi
+
diff -Nru multipath-tools-0.6.4/debian/tests/tgtbasedmpaths multipath-tools-0.6.4/debian/tests/tgtbasedmpaths
--- multipath-tools-0.6.4/debian/tests/tgtbasedmpaths 1970-01-01 05:30:00.000000000 +0530
+++ multipath-tools-0.6.4/debian/tests/tgtbasedmpaths 2017-02-20 19:36:31.000000000 +0530
@@ -0,0 +1,204 @@
+#!/bin/sh
+# autopkgtest check: tgt and open-iscsi based mpath operations
+# The test is intentionally extra verbose to have rich log and to stress
+# some of the code paths in and around multipath on top of the actual IO test.
+# (C) 2016 Canonical Ltd.
+# Author: Christian Ehrhardt <christian.ehrhardt at canonical.com>
+
+# Tests the creation and usage of a tgt target and lun on localhost
+set -uxe
+
+targetname="iqn.2016-11.foo.com:target.iscsi"
+cwd=$(pwd)
+testdir="/mnt/tgtmpathtest"
+localhost="127.0.0.1"
+portal="${localhost}:3260"
+maxpaths=4
+backfn="backingfile"
+expectwwid="360000000000000000e00000000010001"
+testdisk="/dev/disk/by-id/scsi-${expectwwid}"
+bglog="$AUTOPKGTEST_ARTIFACTS/test-background.log"
+fioprep="$AUTOPKGTEST_ARTIFACTS/path-change-prep.fio"
+fiovrfy="$AUTOPKGTEST_ARTIFACTS/path-change-check.fio"
+
+# Restart tgtd to make sure modules are all loaded
+service tgt restart || echo "Failed to restart tgt" >&2
+
+# prep SINGLE test file
+truncate --size 100M ${backfn}
+
+# create target
+tgtadm --lld iscsi --op new --mode target --tid 1 -T "${targetname}"
+# allow all to bind the target
+tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL
+# set backing file
+tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b "${cwd}/${backfn}"
+
+# scan for targets (locally)
+iscsiadm --mode discovery --type sendtargets --portal ${localhost}
+
+# login
+echo "login #1"
+iscsiadm --mode node --targetname "${targetname}" --portal ${portal} --login
+# duplicate this session (always 1)
+for i in $(seq 2 ${maxpaths})
+do
+ echo "extra login #${i}"
+ iscsiadm --mode session -r 1 --op new
+done
+
+udevadm settle
+
+# status summary
+echo "Status after initial setup"
+tgtadm --lld iscsi --mode target --op show
+tgtadm --lld iscsi --op show --mode conn --tid 1
+iscsiadm --mode session -P 1
+lsscsi -liv
+multipath -v3 -ll
+dmsetup table
+
+echo "Test WWN should now point to DM"
+readlink "${testdisk}" | grep dm
+
+# create FS on the mpathed device
+mkfs.ext4 -F "${testdisk}"
+udevadm settle
+sleep 3s
+mkdir -p ${testdir}
+mount "${testdisk}" ${testdir}
+
+# based on /usr/share/doc/fio/examples/surface-scan.fio
+cat << EOF > ${fioprep}
+; writes 512 byte verification blocks until the disk is full,
+; then verifies written data
+[global]
+directory=${testdir}
+thread=1
+bs=64k
+direct=1
+ioengine=sync
+verify=meta
+verify_pattern=0xaa555aa5
+verify_interval=512
+
+[write-phase]
+filename=datafile.tmp ; or use a full disk, for example /dev/sda
+rw=write
+fill_device=1
+do_verify=0
+EOF
+
+cat << EOF > ${fiovrfy}
+; verifies written data
+[global]
+directory=${testdir}
+thread=1
+bs=64k
+direct=1
+ioengine=sync
+verify=meta
+verify_pattern=0xaa555aa5
+verify_interval=512
+
+[verify-phase]
+stonewall
+create_serialize=0
+filename=datafile.tmp
+rw=read
+do_verify=1
+runtime=180
+time_based
+EOF
+
+# IO Bench with verify
+# prep files
+fio "${fioprep}"
+
+# while verify is running unplud/plug paths as well as restart the daemon
+# Note - we run in a clean env, so we just assume each new session is an increment
+# Even with other multipath/scsi devices on the system this is true, jutst no
+# other iscsi logins are allowed - since the test runs under isolation-machine
+# that should be safe.
+# That way we can directly call IDs without huge logic on the session IDs
+echo "Starting the path changes in background"
+(
+ iscsiadm --mode session
+ sleep 10s
+ date +'MP report (expect 4) %H:%M:%S.%N'
+ multipath -ll
+ date +'UN-plug path 1 %H:%M:%S.%N'
+ iscsiadm --mode session -r 1 -u
+ iscsiadm --mode session
+ sleep 10s
+ date +'MP report (expect 3) %H:%M:%S.%N'
+ multipath -ll
+ date +'UN-plug path 2 %H:%M:%S.%N'
+ iscsiadm --mode session -r 2 -u
+ iscsiadm --mode session
+ sleep 10s
+ date +'MP report (expect 2) %H:%M:%S.%N'
+ multipath -ll
+ date +'UN-plug path 3 %H:%M:%S.%N'
+ iscsiadm --mode session -r 3 -u
+ iscsiadm --mode session
+ sleep 10s
+ date +'MP report (expect 1) %H:%M:%S.%N'
+ multipath -ll
+ date +'Add paths 5/6/7/8 %H:%M:%S.%N'
+ iscsiadm --mode session -r 4 --op new
+ iscsiadm --mode session -r 4 --op new
+ iscsiadm --mode session -r 4 --op new
+ iscsiadm --mode session -r 4 --op new
+ iscsiadm --mode session
+ sleep 10s
+ date +'MP report (expect 5) %H:%M:%S.%N'
+ multipath -ll
+ date +'UN-plug multiple paths 4/7/8 %H:%M:%S.%N'
+ iscsiadm --mode session -r 4 -u
+ iscsiadm --mode session -r 7 -u
+ iscsiadm --mode session -r 8 -u
+ iscsiadm --mode session
+ sleep 10s
+ date +'Restart multipath daemon %H:%M:%S.%N'
+ systemctl restart multipathd
+ sleep 10s
+ date +'Final background report (expect 2) %H:%M:%S.%N'
+ multipath -ll
+) > "${bglog}" 2>&1 &
+
+# test I/O with verification of actual content
+# on any I/O error or verification of read data it would fail
+date +'Pre FIO %H:%M:%S.%N'
+fio "${fiovrfy}"
+date +'Post FIO %H:%M:%S.%N'
+
+echo "FIO verify test with changing paths - OK"
+
+echo "Report log of background activity"
+cat "${bglog}"
+
+sync
+umount "${testdisk}"
+
+# report stats - might be useful if checked across various tests that misbehave
+echo "Final stats"
+iscsiadm --mode session --stats
+journalctl --no-pager -u multipathd
+
+echo "Check final path status"
+multipath -ll
+# ensure we have one active and one running path
+diskc=$(multipath -ll | grep --count 'status=')
+diska=$(multipath -ll | grep --count 'status=active')
+diske=$(multipath -ll | grep --count 'status=enabled')
+if [ "${diskc}" -ne "2" -o "${diska}" -ne "1" -o "${diske}" -ne "1" ]; then
+ echo "Error: Not the expected count of active/enabled disks"
+ exit 1
+else
+ echo "OK"
+fi
+
+# logout and target delete should work even after all of this
+iscsiadm --mode node --targetname "${targetname}" --portal "${portal}" --logout
+tgtadm --lld iscsi --op delete --mode logicalunit --tid 1 --lun 1
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: This is a digitally signed message part
URL: <http://lists.alioth.debian.org/pipermail/pkg-lvm-maintainers/attachments/20170220/b932586a/attachment-0001.sig>
More information about the pkg-lvm-maintainers
mailing list