Merge ~paelzer/ubuntu/+source/multipath-tools:merge-zesty into ~usd-import-team/ubuntu/+source/multipath-tools:debian/sid

Proposed by ChristianEhrhardt on 2016-11-28
Status: Merged
Merge reported by: Robie Basak
Merged at revision: 47fed9399cf2bc50cb7ee87a16a48cba14c1e1c3
Proposed branch: ~paelzer/ubuntu/+source/multipath-tools:merge-zesty
Merge into: ~usd-import-team/ubuntu/+source/multipath-tools:debian/sid
Diff against target: 1950 lines (+1552/-79)
23 files modified
debian/changelog (+922/-1)
debian/control (+19/-8)
debian/initramfs/hooks (+20/-1)
debian/initramfs/init-top (+18/-2)
debian/initramfs/kpartx.hook (+20/-0)
debian/initramfs/local-bottom (+49/-0)
debian/initramfs/local-premount (+30/-0)
debian/kpartx-boot.postinst (+34/-0)
debian/kpartx-boot.postrm (+45/-0)
debian/kpartx.install (+2/-2)
debian/multipath-tools.dm-mpath-lvm.udev (+26/-0)
debian/multipath-tools.preinst (+4/-0)
debian/patches/1000--set-umask-in-multipathd.patch (+30/-0)
debian/patches/disable-fexceptions-udeb.patch (+16/-0)
debian/patches/enable-find-multipaths.patch (+11/-0)
debian/patches/kpartx_more_loopback_fixes.patch (+40/-0)
debian/patches/path_selector.patch (+15/-0)
debian/patches/series (+5/-0)
debian/rules (+8/-5)
debian/tests/control (+8/-0)
debian/tests/kpartx-file-loopback (+51/-0)
debian/tests/tgtbasedmpaths (+179/-0)
dev/null (+0/-60)
Reviewer Review Type Date Requested Status
ChristianEhrhardt Approve on 2017-01-30
Canonical Server Team 2017-07-10 Pending
Ubuntu Server Dev import team 2016-11-28 Pending
Review via email: mp+311921@code.launchpad.net

Description of the Change

Hi,
prepared the merge for multipath-tools in zesty.

This is a rather huge jump in terms of upstream versions from 0.5+git1.656f8865 to 0.6.3.
To some extend that sounds more than it is as the -git versions included a lot until normal releases started again with 0.6 this April and then regularly in a 1-2 month cadence.

On top of the actual merge I fixed s390/armhf dep8 testing and added a more sophisticated dep8 test that really exercises actual multipathing.

To finalize the merge we will need:
- more testing (which I started to do and discuss on the merge bug)
- finishing a MIR for a new dependency of liburcu (bug 1644757)

But we should already start the review process now (no need to wait on any of the formerly mentioned things to resolve first).

P.S. as with so many of the more complex merges there is quite a lot of delta involved.
I dropped directly what I could, but the more complex potentially-droppable parts should be covered outside of the current merge. I spawned bug 1645277 to track that effort, so we can prioritize that independent of the merge.

To post a comment you must log in.
ChristianEhrhardt (paelzer) wrote :

FYI - this is the first time I tried to experiment with notes as annotated tags, please let me know how you'D like (or not) the <Name-of-banch>-note-id format. E.g. merge-zesty-note-1, merge-zesty-note-2

I used it just to store info along for reviewers or actually more so for next time mergers.

I liked it more than adding into the git commit message. I experimented with git notes, but liked annotated tags more.

ChristianEhrhardt (paelzer) wrote :

FYI - related MIR is done (or actually was already done with a little hickup of being universe in Xenial)

5cba1b5... by ChristianEhrhardt on 2016-11-29

changelog: d/control mark transition of file /etc/init.d/multipath-tools-boot

Signed-off-by: Christian Ehrhardt <email address hidden>

ChristianEhrhardt (paelzer) wrote :

FYI - just to ensure review and reality is in sync.
- I identified an upgrade issue that I already fixed and will soon be pushed to this.
- I also found a yet to debug issue when multipath is needed in the initrd (due to me getting mp tests with curtin to work - bah I tested to find issues and found them :-/).

ChristianEhrhardt (paelzer) wrote :

I fixed the next bug, which in fact was local to the ppa only.
But it proved my fix to the breaks/dependencies works as intended.

I have one (and many potential) more test on my "testplan" if you want to call it that.
Yet current state of the merge is now confirmed working as intended at least in several use cases.

ChristianEhrhardt (paelzer) wrote :

Next test done as well, so I now have done both:
- installed with the old version and upgraded
- installed with the new version in place

As time permits I might look into more tests, but IMHO we are really ready for merge review now.

d56bd50... by ChristianEhrhardt on 2017-01-12

- Remove partition device nodes of individual paths (for LVM on multipath)
  (LP: #1540401)
BAD_CHANGELOG-THIS-IS-ONLY-COPYING-THE-UDEV-BUT-DROPPING-KPARTX-RULE
  - debian/initramfs/hooks: copy the udev rule and partx to the initramfs

Signed-off-by: Christian Ehrhardt <email address hidden>

8e1614c... by ChristianEhrhardt on 2017-01-12

changelog: drop debian/initramfs/hooks: use 95 not 60 for multipath

Signed-off-by: Christian Ehrhardt <email address hidden>

db30be7... by ChristianEhrhardt on 2017-01-27

d/t/tgtbasedmpaths - increase test duration to avoid transient issues if background actions take too long

Signed-off-by: Christian Ehrhardt <email address hidden>

7598bc7... by ChristianEhrhardt on 2017-01-27

d/t/tgtbasedmpaths - report multipath status in background load after it had time to pick up

Signed-off-by: Christian Ehrhardt <email address hidden>

67a2e07... by ChristianEhrhardt on 2017-01-27

d/t/tgtbasedmpaths - bgload: add initial iscsi report

Signed-off-by: Christian Ehrhardt <email address hidden>

d2e7186... by ChristianEhrhardt on 2017-01-27

d/t/tgtbasedmpaths - bgload: add better timing info

Signed-off-by: Christian Ehrhardt <email address hidden>

e41ae9d... by ChristianEhrhardt on 2017-01-27

d/t/tgtbasedmpaths - fio: add better timing info

Signed-off-by: Christian Ehrhardt <email address hidden>

58a6268... by ChristianEhrhardt on 2017-01-27

d/t/tgtbasedmpaths - bgload: report logs one after the other

Signed-off-by: Christian Ehrhardt <email address hidden>

393390a... by ChristianEhrhardt on 2017-01-27

- Split kpartx initramfs bits into kpartx-boot for dmraid (LP: #941874)
  - debian/initramfs/kpartx.hook
  - debian/kpartx-boot.postinst
  - debian/kpartx-boot.postrm
  - debian/control: Add kpartx-boot package for dmraid
  - debian/rules: Install kpartx initramfs hook

Signed-off-by: Christian Ehrhardt <email address hidden>

72968dd... by ChristianEhrhardt on 2017-01-27

- Disable -fexceptions on multipath-udeb (LP: #1489379): the flag causes
  libchecktur.so to link with libgcc_s.so.1 (even with -static-libgcc),
  which is not available in the installer environment.
  - d/p/disable-fexceptions-udeb.patch: conditionally disable -fexceptions
    with CFLAGS_DISABLE_FEXCEPTIONS.
  - d/rules: set CFLAGS_DISABLE_FEXCEPTIONS to build multipath-udeb.

Signed-off-by: Christian Ehrhardt <email address hidden>

f360d6c... by ChristianEhrhardt on 2017-01-27

Merge changelog

Signed-off-by: Christian Ehrhardt <email address hidden>

4afab87... by ChristianEhrhardt on 2017-01-27

- d/control mark transition of file /etc/init.d/multipath-tools-boot
  according to case #9 of https://wiki.debian.org/PackageTransition

Signed-off-by: Christian Ehrhardt <email address hidden>

ChristianEhrhardt (paelzer) wrote :

Still lacking review I revisited this as I wanted to add a few more confirmations before uploading.
Doing so I found a transient issue (that was not present back in November) in the Tests that I need to fix - set status to needs fixing for now.

Along that I re-merged latest Upstream since so much time passed we got a new one.
That should help IBM Storage systems which got a few good upstream fixes as well as several improvements to the Packaging by Debian.

I'll ping back here once I have solved the Testing instability.

review: Needs Fixing
b2ef204... by ChristianEhrhardt on 2017-01-30

d/t/tgtbasedmpaths - make fio jobs and log test artifacts

Signed-off-by: Christian Ehrhardt <email address hidden>

caf4d29... by ChristianEhrhardt on 2017-01-30

d/t/tgtbasedmpaths - use readlink to check the dm symlink

Signed-off-by: Christian Ehrhardt <email address hidden>

cf6f62f... by ChristianEhrhardt on 2017-01-30

d/t/tgtbasedmpaths - also check if it survives restarting the daemon

Signed-off-by: Christian Ehrhardt <email address hidden>

47fed93... by ChristianEhrhardt on 2017-01-30

d/t/tgtbasedmpaths - safety sync before umount

Signed-off-by: Christian Ehrhardt <email address hidden>

ChristianEhrhardt (paelzer) wrote :

Fixed the issues with the Tests after some experiments that finally made them reproducible locally.
Also further improved the tests in general.

Currently running another full check in Bileto, but other than that ready for review again.
"Self-approve" to undo my former "needs fixing".

review: Approve
ChristianEhrhardt (paelzer) wrote :

Hmm, all tests were fine now see https://bileto.ubuntu.com/excuses/2414/zesty.html

Since we (Server Team) got tasked with the merge this time I thought that upload is on server-dev as well, but it turns out it is only Serge and Core-Dev.

@Robie - I'll ping you in IRC to kick off a discussion to adapt this.

But for now could you merge this branch and upload with your powers?

ChristianEhrhardt (paelzer) wrote :

Note for next time:
- some delta accepted by Debian
- the delta to load dm-multipath can be dropped, that is now done by the systemd job as execprestart
- Some more of the boot-time code might be outdated, but needs a deeper check (=more time on merge)

ChristianEhrhardt (paelzer) wrote :

This was uploaded already after working together with cyphermox back in January/February.
Please set the upload tags correctly to get this out of the review queue.

For some reason the LP visualization shows still 0.6.3-2ubuntu1 diff to me, so please be aware and keep an eye open to tag the right thing.
The head of this branch and MP is [1] 47fed939 which is 0.6.4-3ubuntu1 and that is what was uploaded and should be tagged.

[1]: https://git.launchpad.net/~paelzer/ubuntu/+source/multipath-tools/commit/?id=47fed9399cf2bc50cb7ee87a16a48cba14c1e1c3

Robie Basak (racb) wrote :

Upload tag upload/0.6.4-3ubuntu1 pushed; tree matches existing tag pkg import/0.6.4-3ubuntu1.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/debian/changelog b/debian/changelog
2index 5555e70..5289463 100644
3--- a/debian/changelog
4+++ b/debian/changelog
5@@ -1,3 +1,118 @@
6+multipath-tools (0.6.3-2ubuntu1) zesty; urgency=medium
7+
8+ * Merge from Debian. (LP: #1621340, LP: #1645274) Remaining changes:
9+ - d/control:
10+ - Bump udev dependencies
11+ - multipath-udeb: add sg3-udeb Depends
12+ - d/rules: Move udev rules to priority 95, because rules that load modules
13+ should be >90.
14+ - d/multipath-tools.preinst: modprobe dm-multipath; This will make sure
15+ that multipathd will be able to start.
16+ - Split kpartx initramfs bits into kpartx-boot for dmraid (LP: #941874)
17+ - d/initramfs/kpartx.hook
18+ - d/kpartx-boot.postinst
19+ - d/kpartx-boot.postrm
20+ - d/control: Add kpartx-boot package for dmraid
21+ - d/rules: Install kpartx initramfs hook
22+ - d/kpartx.install: install all arch /lib* kpartx udev rules
23+ - patches (some refreshed to new version) to multipath source
24+ - d/p/1000--set-umask-in-multipathd.patch: Set umask in multipathd.
25+ - d/p/path_selector.patch: switch the default path selector
26+ back to round-robin while service-time isn't available to the installer
27+ multipath-modules.
28+ - d/p/kpartx_more_loopback_fixes.patch: fix loopback mounted
29+ files some more: since we stat() the loopback device node, we can't rely
30+ on S_ISREG() tests to handle this case, and should look at the device
31+ itself instead. (LP: #1543430)
32+ - d/p/enable-find-multipaths.patch: re-enable find_multipaths
33+ by default -- see the removed 'add_find-multipaths.patch' (LP: #1463046)
34+ - multipath initramfs fixes for booting from multipathed devices
35+ - d/initramfs/hooks: use 95 not 60 for multipath rules priority
36+ - d/initramfs/hooks: also copy wwids file on the installed system to
37+ ensure all paths come up on boot. (LP: #1479929)
38+ - d/initramfs/hooks: install multipathd and required directories.
39+ - d/initramfs/hooks: copy dm-mpath-lvm & multipath udev rules to initramfs
40+ - d/initramfs/hooks: do not copy kpartx rules to initramfs
41+ - d/initramfs/local-bottom: remember to stop multipathd.
42+ - d/initramfs/local-premount: wait for udev to settle before the call to
43+ resolve_device() in local_mount_root(), so the by-uuid/ symlinks have a
44+ chance to be updated by the multipath udev rules (LP: #1503286).
45+ - d/initramfs/local-premount: Run multipath with -B so not to assign names
46+ nor change /etc/multipath/bindings during initramfs (LP: #1561103)
47+ - d/rules: install d/initramfs/local-bottom
48+ - d/rules: install d/initramfs/local-premount
49+ - Remove partition device nodes of individual paths (for LVM on multipath)
50+ (LP: #1540401)
51+ - Disable -fexceptions on multipath-udeb (LP: #1489379): the flag causes
52+ libchecktur.so to link with libgcc_s.so.1 (even with -static-libgcc),
53+ which is not available in the installer environment.
54+ - d/p/disable-fexceptions-udeb.patch: conditionally disable -fexceptions
55+ with CFLAGS_DISABLE_FEXCEPTIONS.
56+ - d/rules: set CFLAGS_DISABLE_FEXCEPTIONS to build multipath-udeb.
57+ - d/tests/kpartx-file-loopback: add an autopkgtest to catch future cases
58+ where uploads might break kpartx's loopback file handling.
59+ - Remove partition device nodes of individual paths (for LVM on multipath)
60+ on the new multipath-tools with udev property blacklisting (LP: #1540401)
61+ - d/multipath-tools.dm-mpath-lvm.udev: udev rule for that.
62+ - d/initramfs/init-top: load the dm-multipath module for
63+ 'multipath -c'.
64+ - d/initramfs/init-top: start multipathd before udev (required by
65+ 'multipath -u' in the udev rules)
66+ - d/rules: install the udev rule (priority 56: after 55-scsi-sg3_id)
67+ - d/rules: rename multipath-tools udev to dm-mpath-lvm
68+ - d/multipath-tools.dm-mpath-lvm.udev: replace 'multipath -c' with
69+ 'multipath -u' which can read udev properties at PROGRAM-rule time
70+ (when udev properties are not yet written to the udev database).
71+ - Remove d/initramfs/local-top (redundant with other initramfs scripts):
72+ - init-top: take over loading modules (dm-multipath and SCSI device
73+ handlers); move the missing dm-emc there (now scsi-dh-emc;
74+ see BTS 567014).
75+ - d/rules: do not install local-top anymore.
76+ - remove d/initramfs/local-top
77+ - Fixes typo in package description (availibility -> availability)
78+ (LP: #1231182)
79+ * Add changes:
80+ - mark kpartx tests as isolation-machine to avoid issues in e.g. LXD
81+ autopkgtest environments (LP: #1644253)
82+ - d/t/tgtbasedmpaths add Test using tgt and open-iscsi to excercise
83+ multipath
84+ - d/control mark transition of file /etc/init.d/multipath-tools-boot
85+ according to case #9 of https://wiki.debian.org/PackageTransition
86+ * Drop changes:
87+ - d/initramfs/local-top: wait for udev to settle before running
88+ 'multipath' in order to avoid race condition on device-mapper calls.
89+ (file no more used)
90+ - d/initramfs/local-top: remove '--timeout 10' which causes my
91+ test system to not boot roughly 3 out of 4 times.
92+ (file no more used)
93+ - d/initramfs/local-top: run multipathd rather than a one-off call to
94+ multipath so that new paths can be correctly added as detected while we're
95+ still in the initramfs.
96+ (file no more used)
97+ - Call clean target before rebuilding with systemd support (in Debian)
98+ - drop build-dep to dpkg-dev (>= 1.16.1~), libudev-dev"
99+ (No more needed)
100+ - Bump Standards-Version to 3.9.6 (in Debian)
101+ - add / to LIB= of DEB_CFLAGS_MAINT_APPEND (in Debian)
102+ - d/p/handle_spaces_in_rev_attr.patch: support IBM IPR devices and others
103+ which may have only spaces for the rev attribute. (upstream)
104+ - d/p/0015-shared-lock-for-udev.patch: (LP: #1431650) (upstream)
105+ - d/p/0053-readonly-bindings_multipathd_prod.patch: support
106+ -B to allow multipathd to handle cases where the bindings file is
107+ read-only. (upstream)
108+ - d/p/git-kpartx-support-spaces-in-dev-names-b407050a.patch: deal with
109+ spaces in device names in kpartx too (LP: #1432062) (upstream)
110+ - d/p/0001-multipath-tools-fix-dm-device-filtering.patch: Allow
111+ filtering of DEV_UEVENT dev_type (LP: #1570093) (upstream)
112+ - d/multipath-tools.postinst: handle upgrades from < 0.5.0 by migrating
113+ from the old device names with device numbers to using letters for devices.
114+ (no relevant upgrade path left)
115+ - d/p/mpath_name_migration.patch: ship a multipath_migrate binary
116+ to make translation from pre-0.5.0 device naming to the new scheme.
117+ (no relevant upgrade path left)
118+
119+ -- Christian Ehrhardt <christian.ehrhardt@canonical.com> Thu, 24 Nov 2016 17:31:18 +0100
120+
121 multipath-tools (0.6.3-2) unstable; urgency=medium
122
123 * [6915af9] Add patch to disable linking to librados in udeb
124@@ -106,6 +221,164 @@ multipath-tools (0.5.0+git1.656f8865-6) unstable; urgency=medium
125
126 -- Ritesh Raj Sarraf <rrs@debian.org> Sat, 12 Mar 2016 17:47:25 +0530
127
128+multipath-tools (0.5.0+git1.656f8865-5ubuntu7) yakkety; urgency=medium
129+
130+ * No-change rebuild for readline soname change.
131+
132+ -- Matthias Klose <doko@ubuntu.com> Sat, 17 Sep 2016 12:06:37 +0000
133+
134+multipath-tools (0.5.0+git1.656f8865-5ubuntu6) yakkety; urgency=medium
135+
136+ * Fixes typo in package description (availibility -> availability)
137+ (LP: #1231182)
138+
139+ -- Hans Joachim Desserud <ubuntu@desserud.org> Sun, 04 Sep 2016 13:19:49 +0200
140+
141+multipath-tools (0.5.0+git1.656f8865-5ubuntu5) yakkety; urgency=medium
142+
143+ [ Dragan Stancevic ]
144+ * d/p/0001-multipath-tools-fix-dm-device-filtering.patch :
145+ multipath-tools: fix dm- device filtering
146+ - Allow filtering of DEV_UEVENT dev_type
147+ - Resolves LP: #1570093
148+ - Proper patch included in the source package this time. Previous upload
149+ only had the changelog entry.
150+
151+ -- Louis Bouchard <louis.bouchard@ubuntu.com> Tue, 19 Jul 2016 14:17:14 +0200
152+
153+multipath-tools (0.5.0+git1.656f8865-5ubuntu4) yakkety; urgency=medium
154+
155+ [ Dragan Stancevic ]
156+ * multipath-tools: fix dm- device filtering
157+ - Allow filtering of DEV_UEVENT dev_type
158+ - Resolves LP: #1570093
159+
160+ -- Louis Bouchard <louis.bouchard@ubuntu.com> Mon, 18 Jul 2016 12:37:04 +0200
161+
162+multipath-tools (0.5.0+git1.656f8865-5ubuntu3) yakkety; urgency=medium
163+
164+ * Cherrypick from debian:
165+ - Call clean target before rebuilding with systemd support
166+ - Call systemd in debian/rules. Also adapt init service
167+ aliasing.
168+ - Should resolve LP: #1578638, LP: #1589526, LP: #1583563.
169+
170+ -- Dimitri John Ledkov <xnox@ubuntu.com> Thu, 16 Jun 2016 11:53:33 +0300
171+
172+multipath-tools (0.5.0+git1.656f8865-5ubuntu2) xenial; urgency=medium
173+
174+ [ Mauricio Faria de Oliveira ]
175+ * Remove partition device nodes of individual paths (for LVM on multipath)
176+ on the new multipath-tools with udev property blacklisting (LP: #1540401)
177+ - debian/multipath-tools.dm-mpath-lvm.udev: replace 'multipath -c' with
178+ 'multipath -u' which can read udev properties at PROGRAM-rule time
179+ (when udev properties are not yet written to the udev database).
180+ - debian/initramfs/init-top: start multipathd before udev (required by
181+ 'multipath -u' in the udev rules)
182+ - debian/initramfs/local-top: remove snippet to start multipathd.
183+ * Remove debian/initramfs/local-top (redundant with other initramfs scripts):
184+ - init-top: start multipathd.
185+ - init-top: load modules (dm-multipath and SCSI device handlers); move the
186+ missing dm-emc there (now scsi-dh-emc; see BTS 567014).
187+ - local-premount: settle on udev events; and the extra call due to
188+ multipath discovery in udev rules is no longer required with multipathd
189+ in initramfs.
190+ - debian/rules: do not install local-top anymore.
191+ * debian/initramfs/local-premount: run multipath with -B so not to assign
192+ names nor change /etc/multipath/bindings during initramfs (LP: #1561103)
193+ * debian/patches/enable-find-multipaths.patch: re-enable find_multipaths
194+ by default -- see the removed 'add_find-multipaths.patch' (LP: #1463046)
195+
196+ -- Mathieu Trudel-Lapierre <cyphermox@ubuntu.com> Mon, 04 Apr 2016 22:36:48 -0400
197+
198+multipath-tools (0.5.0+git1.656f8865-5ubuntu1) xenial; urgency=medium
199+
200+ * Merge from Debian. (LP: #1551952) (LP: #1540407)
201+ Remaining changes:
202+ - debian/control:
203+ - Bump debhelper dependency to install udev rules to
204+ /lib/udev/rules.d
205+ - Bump udev dependencies as well
206+ - debian/control:
207+ - multipath-tools: add sg3-utils-dev Depends
208+ - multipath-udeb: add sg3-udeb Depends
209+ - debian/initramfs/hooks: use 95 not 60 for multipath rules priority
210+ - debian/rules: Move udev rules to priority 95, because rules that load modules should be >90.
211+ - debian/multipath-tools.preinst: modprobe dm-multipath.
212+ This will make sure that multipathd will be able to start.
213+ - debian/initramfs/local-top: wait for udev to settle before running
214+ 'multipath' in order to avoid race condition on device-mapper calls.
215+ - debian/initramfs/local-top: remove '--timeout 10' which causes my
216+ test system to not boot roughly 3 out of 4 times.
217+ - Split kpartx initramfs bits into kpartx-boot for dmraid (LP: #941874)
218+ - debian/initramfs/kpartx.hook
219+ - debian/kpartx-boot.postinst
220+ - debian/kpartx-boot.postrm
221+ - debian/kpartx.install
222+ - debian/control: Add kpartx-boot package for dmraid
223+ - debian/rules: Install kpartx initramfs hook
224+ - debian/patches/1000--set-umask-in-multipathd.patch: Set umask in multipathd.
225+ - debian/patches/handle_spaces_in_rev_attr.patch: support IBM IPR devices
226+ and others which may have only spaces for the rev attribute.
227+ - debian/patches/path_selector.patch: switch the default path selector
228+ back to round-robin while service-time isn't available to the installer
229+ multipath-modules.
230+ - debian/patches/0015-shared-lock-for-udev.patch: (LP: #1431650)
231+ - debian/initramfs/hooks: also copy wwids file on the installed system to
232+ ensure all paths come up on boot. (LP: #1479929)
233+ - Disable -fexceptions on multipath-udeb (LP: #1489379): the flag causes
234+ libchecktur.so to link with libgcc_s.so.1 (even with -static-libgcc),
235+ which is not available in the installer environment.
236+ - debian/patches/disable-fexceptions-udeb.patch: conditionally disable
237+ -fexceptions with CFLAGS_DISABLE_FEXCEPTIONS.
238+ - debian/rules: set CFLAGS_DISABLE_FEXCEPTIONS to build multipath-udeb.
239+ - debian/patches/handle_spaces_in_rev_attr.patch: update patch to apply the
240+ change to the right line (LP: #1492425)
241+ - debian/initramfs/local-premount: wait for udev to settle before the call
242+ to resolve_device() in local_mount_root(), so the by-uuid/ symlinks have
243+ a chance to be updated by the multipath udev rules (LP: #1503286).
244+ - debian/multipath-tools.postinst: handle upgrades from < 0.5.0 by migrating
245+ from the old device names with device numbers to using letters for devices.
246+ - debian/patches/mpath_name_migration.patch: ship a multipath_migrate binary
247+ to make translation from pre-0.5.0 device naming to the new scheme.
248+ - debian/initramfs/hooks: install multipathd and required directories.
249+ - debian/initramfs/local-premount: reload all maps to make sure they're
250+ indeed loaded and ready before we end premount.
251+ - debian/initramfs/local-top: run multipathd rather than a one-off call to
252+ multipath so that new paths can be correctly added as detected while we're
253+ still in the initramfs.
254+ - debian/initramfs/local-bottom: remember to stop multipathd.
255+ - debian/rules: install debian/initramfs/local-bottom
256+ - debian/patches/0053-readonly-bindings_multipathd_prod.patch: support -B to
257+ allow multipathd to handle cases where the bindings file is read-only.
258+ (LP: #1526984)
259+ - debian/patches/git-kpartx-support-spaces-in-dev-names-b407050a.patch: deal
260+ with spaces in device names in kpartx too (LP: #1432062)
261+ - debian/tests/kpartx-file-loopback: add an autopkgtest to catch future cases
262+ where uploads might break kpartx's loopback file handling.
263+ - debian/patches/kpartx_more_loopback_fixes.patch: fix loopback mounted
264+ files some more: since we stat() the loopback device node, we can't rely
265+ on S_ISREG() tests to handle this case, and should look at the device
266+ itself instead. (LP: #1543430)
267+ - Remove partition device nodes of individual paths (for LVM on multipath)
268+ (LP: #1540401)
269+ - debian/multipath-tools.dm-mpath-lvm.udev: udev rule for that.
270+ - debian/initramfs/hooks: copy the udev rule and partx to the initramfs.
271+ - debian/initramfs/init-top: load the dm-multipath module for 'multipath -c'.
272+ - debian/rules: install the udev rule (priority 56: after 55-scsi-sg3_id)
273+ - debian/rules: don't ship 95-multipath.rules udev rules anymore; they are
274+ not necessary with multipath-tools listening for udev events directly.
275+ * Drop changes:
276+ - debian/patches/series: Drop obsolete patches already included upstream
277+ - debian/patches/ignore_devices_nodename_fail.patch
278+ - debian/patches/skip_usb_devices.patch
279+ - debian/patches/0014-kpartx-long-path.patch
280+ - debian/patches/0052-readonly-bindings_multipathd.patch
281+ - debian/patches/add_find-multipaths.patch
282+ - debian/patches/dm-multipath-backlist-nvme-5c412e47.patch
283+
284+ -- Ryan Harper <ryan.harper@canonical.com> Wed, 09 Mar 2016 10:21:26 -0600
285+
286 multipath-tools (0.5.0+git1.656f8865-5) unstable; urgency=medium
287
288 * [e91ac62] Fix build to properly generate the arch-independent
289@@ -196,6 +469,190 @@ multipath-tools (0.5.0+git0.770e6d0d-1) experimental; urgency=medium
290
291 -- Ritesh Raj Sarraf <rrs@debian.org> Sun, 09 Aug 2015 14:42:48 +0530
292
293+multipath-tools (0.5.0-7ubuntu16) xenial; urgency=medium
294+
295+ * debian/patches/dm-multipath-backlist-nvme-5c412e47.patch: blacklist NVMe
296+ from multipath, otherwise kpartx calls will hang. This is because mpath
297+ works at the request level (which NVMe bypasses), so multipathing is not
298+ supported on NVMe. (LP: #1551828)
299+
300+ -- Mathieu Trudel-Lapierre <mathieu-tl@ubuntu.com> Tue, 01 Mar 2016 11:55:13 -0500
301+
302+multipath-tools (0.5.0-7ubuntu15) xenial; urgency=medium
303+
304+ [ Mauricio Faria de Oliveira ]
305+ * Remove partition device nodes of individual paths (for LVM on multipath)
306+ (LP: #1540401)
307+ - debian/multipath-tools.dm-mpath-lvm.udev: udev rule for that.
308+ - debian/initramfs/hooks: copy the udev rule and partx to the initramfs.
309+ - debian/initramfs/init-top: load the dm-multipath module for 'multipath -c'.
310+ - debian/rules: install the udev rule (priority 56: after 55-scsi-sg3_id)
311+ * debian/rules: don't ship 95-multipath.rules udev rules anymore; they are
312+ not necessary with multipath-tools listening for udev events directly.
313+
314+ -- Mathieu Trudel-Lapierre <mathieu-tl@ubuntu.com> Thu, 11 Feb 2016 19:08:14 -0500
315+
316+multipath-tools (0.5.0-7ubuntu14) xenial; urgency=medium
317+
318+ * debian/patches/kpartx_more_loopback_fixes.patch: fix loopback mounted
319+ files some more: since we stat() the loopback device node, we can't rely
320+ on S_ISREG() tests to handle this case, and should look at the device
321+ itself instead. (LP: #1543430)
322+ * debian/tests/kpartx-file-loopback: check for left-over loop devices after
323+ deleting a map.
324+
325+ -- Mathieu Trudel-Lapierre <mathieu-tl@ubuntu.com> Tue, 09 Feb 2016 15:24:27 -0500
326+
327+multipath-tools (0.5.0-7ubuntu13) xenial; urgency=medium
328+
329+ * Check that losetup -f is the same in the autopkgtest, after a cycle of
330+ kpartx -a/-d. Looks like it's currently failing to cleanup loop0 in
331+ addition to cleaning loop0p1. See http://pad.lv/1543430
332+
333+ -- Dimitri John Ledkov <xnox@ubuntu.com> Tue, 09 Feb 2016 06:51:15 +0000
334+
335+multipath-tools (0.5.0-7ubuntu12) xenial; urgency=medium
336+
337+ * Use synchronous kpartx calls in the adt tests, to hopefully avoid
338+ kernel/userspace races which result in failure to remove mapped
339+ partitions. Also invoke udevadm settle.
340+
341+ -- Dimitri John Ledkov <xnox@ubuntu.com> Tue, 02 Feb 2016 20:26:34 +0000
342+
343+multipath-tools (0.5.0-7ubuntu11) xenial; urgency=medium
344+
345+ * debian/patches/git-kpartx-support-spaces-in-dev-names-b407050a.patch: fixup
346+ to correct deal with loopback-mounting files. (LP: #1540660)
347+ * debian/patches/mpath_name_migration.patch: make sure multipath_migrate gets
348+ cleaned up otherwise running debuild twice will fail.
349+ * debian/tests/kpartx-file-loopback: add an autopkgtest to catch future cases
350+ where uploads might break kpartx's loopback file handling.
351+
352+ -- Mathieu Trudel-Lapierre <mathieu-tl@ubuntu.com> Mon, 01 Feb 2016 23:27:08 -0500
353+
354+multipath-tools (0.5.0-7ubuntu10) xenial; urgency=medium
355+
356+ * debian/patches/0052-readonly-bindings_multipathd.patch,
357+ debian/patches/0053-readonly-bindings_multipathd_prod.patch: support -B to
358+ allow multipathd to handle cases where the bindings file is read-only.
359+ (LP: #1526984)
360+ * debian/initramfs/hooks: install multipathd and required directories.
361+ * debian/initramfs/local-bottom, debian/rules: install local-bottom for
362+ initramfs.
363+ * debian/initramfs/local-premount: reload all maps to make sure they're
364+ indeed loaded and ready before we end premount.
365+ * debian/initramfs/local-top: run multipathd rather than a one-off call to
366+ multipath so that new paths can be correctly added as detected while we're
367+ still in the initramfs.
368+ * debian/initramfs/local-bottom: remember to stop multipathd.
369+ * debian/patches/git-kpartx-support-spaces-in-dev-names-b407050a.patch: deal
370+ with spaces in device names in kpartx too (LP: #1432062)
371+
372+ -- Mathieu Trudel-Lapierre <mathieu-tl@ubuntu.com> Wed, 27 Jan 2016 10:42:51 -0500
373+
374+multipath-tools (0.5.0-7ubuntu9) xenial; urgency=medium
375+
376+ * d/p/lp1503305_libmultipath_info_on_1st_path_down_dbd131e.patch:
377+ Correctly display the vendor/model info on path line in output if the
378+ first path of a path group is failed. (LP: #1503305)
379+
380+ -- Mathieu Trudel-Lapierre <mathieu-tl@ubuntu.com> Tue, 03 Nov 2015 18:34:09 -0600
381+
382+multipath-tools (0.5.0-7ubuntu8) xenial; urgency=medium
383+
384+ * debian/multipath-tools.postinst: handle upgrades from < 0.5.0 by migrating
385+ from the old device names with device numbers to using letters for devices.
386+ * debian/patches/mpath_name_migration.patch: ship a multipath_migrate binary
387+ to make translation from pre-0.5.0 device naming to the new scheme.
388+
389+ -- Mathieu Trudel-Lapierre <mathieu-tl@ubuntu.com> Thu, 22 Oct 2015 12:38:45 +0100
390+
391+multipath-tools (0.5.0-7ubuntu7) wily; urgency=medium
392+
393+ [ Mauricio Faria de Oliveira ]
394+ * debian/initramfs/local-premount: wait for udev to settle before the call
395+ to resolve_device() in local_mount_root(), so the by-uuid/ symlinks have
396+ a chance to be updated by the multipath udev rules (LP: #1503286).
397+
398+ -- Steve Langasek <steve.langasek@ubuntu.com> Mon, 19 Oct 2015 22:56:58 -0700
399+
400+multipath-tools (0.5.0-7ubuntu6) wily; urgency=medium
401+
402+ * debian/patches/handle_spaces_in_rev_attr.patch: update patch to apply the
403+ change to the right line (LP: #1492425)
404+
405+ -- Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com> Fri, 18 Sep 2015 10:16:50 -0400
406+
407+multipath-tools (0.5.0-7ubuntu5) wily; urgency=medium
408+
409+ * debian/patches/0014-kpartx-long-path.patch: have kpartx match loopback
410+ files by device and inode rather than by path, as paths are not complete
411+ enough to do specific matching for long paths (> 64 chars) or relative
412+ paths. (LP: #1469143)
413+
414+ -- Mathieu Trudel-Lapierre <mathieu-tl@ubuntu.com> Thu, 17 Sep 2015 11:10:38 -0400
415+
416+multipath-tools (0.5.0-7ubuntu4) wily; urgency=medium
417+
418+ * Disable -fexceptions on multipath-udeb (LP: #1489379): the flag causes
419+ libchecktur.so to link with libgcc_s.so.1 (even with -static-libgcc),
420+ which is not available in the installer environment.
421+ - debian/patches/disable-fexceptions-udeb.patch: conditionally disable
422+ -fexceptions with CFLAGS_DISABLE_FEXCEPTIONS.
423+ - debian/rules: set CFLAGS_DISABLE_FEXCEPTIONS to build multipath-udeb.
424+
425+ -- Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com> Thu, 03 Sep 2015 07:29:59 -0400
426+
427+multipath-tools (0.5.0-7ubuntu3) wily; urgency=medium
428+
429+ * debian/initramfs/hooks: also copy wwids file on the installed system to
430+ ensure all paths come up on boot. (LP: #1479929)
431+
432+ -- Mathieu Trudel-Lapierre <mathieu-tl@ubuntu.com> Thu, 30 Jul 2015 16:34:28 -0400
433+
434+multipath-tools (0.5.0-7ubuntu2) wily; urgency=medium
435+
436+ * debian/patches/add_find-multipaths.patch: properly handle local non-mpath
437+ devices. (LP: #1463046)
438+ * debian/patches/ignore_devices_nodename_fail.patch: ignore devices for which
439+ sysfs_get_tgt_nodename fails.
440+ * debian/patches/skip_usb_devices.patch: skip USB devices during discovery.
441+ (LP: #1468897)
442+
443+ -- Mathieu Trudel-Lapierre <mathieu-tl@ubuntu.com> Fri, 10 Jul 2015 15:53:37 -0400
444+
445+multipath-tools (0.5.0-7ubuntu1) wily; urgency=medium
446+
447+ * Merge from debian unstable, remaining changes: (LP: #1455482)
448+ - control:
449+ * Bump debhelper dependency to install udev rules to
450+ /lib/udev/rules.d, bump udev dependencies as well.
451+ - initramfs/hooks: use 95 not 60 for multipath rules priority
452+ - multipath-tools-boot.init: remove in favor of kpartx.udev rules (at top)
453+ - multipath-tools.preinst: modprobe dm-multipath.
454+ This will make sure that multipathd will be able to start.
455+ - patches/1000--set-umask-in-multipathd.patch: Set umask in multipathd.
456+ - rules: Move udev rules to priority 95, because rules that load
457+ modules should be >90.
458+ - debian/initramfs/local-top: wait for udev to settle before running
459+ 'multipath' in order to avoid race condition on device-mapper calls.
460+ - debian/initramfs/local-top: remove '--timeout 10' which causes my
461+ test system to not boot roughly 3 out of 4 times.
462+ - Split kpartx initramfs bits into kpartx-boot for dmraid (LP: #941874)
463+ - Added debian/patches/0015-shared-lock-for-udev.patch (LP: #1431650)
464+ * debian/patches/0015-libmultipath-property-whitelist-SCSI_IDENT.patch: add
465+ SCSI_IDENT_* properties to blacklist exceptions, so that we can have QEMU
466+ multipathed devices as well as others (IBM IPR) detected properly as
467+ multipathed devices.
468+ * debian/patches/handle_spaces_in_rev_attr.patch: support IBM IPR devices
469+ and others which may have only spaces for the rev attribute.
470+ * debian/patches/path_selector.patch: switch the default path selector
471+ back to round-robin while service-time isn't available to the installer
472+ multipath-modules.
473+ * debian/control: add sg3-udeb to multipath-udeb Depends.
474+
475+ -- Mathieu Trudel-Lapierre <mathieu-tl@ubuntu.com> Mon, 06 Jul 2015 13:15:22 -0400
476+
477 multipath-tools (0.5.0-7) unstable; urgency=medium
478
479 * [15ecad9] Add dm-service-time path checker.
480@@ -347,6 +804,100 @@ multipath-tools (0.4.9+git0.4dfdaf2b-1) experimental; urgency=low
481
482 -- Ritesh Raj Sarraf <rrs@debian.org> Fri, 10 Feb 2012 18:25:29 +0530
483
484+multipath-tools (0.4.9-3ubuntu12) vivid; urgency=medium
485+
486+ [ Mauricio Faria de Oliveira ]
487+ * Support disks with non 512-byte sectors (LP: #1441930)
488+ - Added 0016-kpartx-non-512B-GPT.patch
489+ - Added 0017-kpartx-non-512B-sectors.patch
490+
491+ [ Mathieu Trudel-Lapierre ]
492+ * debian/patches/0018-ext-part-gt-512B-sectors.patch: fix extended partition
493+ size for > 512B sectors. Patch cherry-picked from git commit 7202f225.
494+
495+ -- Mathieu Trudel-Lapierre <mathieu-tl@ubuntu.com> Mon, 13 Apr 2015 09:23:29 -0500
496+
497+multipath-tools (0.4.9-3ubuntu11) vivid; urgency=medium
498+
499+ [ Mauricio Faria de Oliveira ]
500+ * Added debian/patches/0015-shared-lock-for-udev.patch (LP: #1431650)
501+ * debian/initramfs/local-top: wait for udev to settle before running
502+ 'multipath' in order to avoid race condition on device-mapper calls.
503+
504+ [ Mathieu Trudel-Lapierre ]
505+ * Drop scsi_wait_scan from the multipath initramfs script: that module
506+ no longer exists.
507+
508+ -- Mathieu Trudel-Lapierre <mathieu-tl@ubuntu.com> Mon, 23 Mar 2015 14:56:37 -0400
509+
510+multipath-tools (0.4.9-3ubuntu10) utopic; urgency=medium
511+
512+ * 1002-fix-linking-library.patch: Move $(LIBDEPS) to the end of the
513+ link line to fix underlinking with ld --as-needed (LP: #1004243)
514+
515+ -- Adam Conrad <adconrad@ubuntu.com> Mon, 13 Oct 2014 07:47:07 -0600
516+
517+multipath-tools (0.4.9-3ubuntu9) utopic; urgency=medium
518+
519+ * Added 0011-libmultipath-update-waiter-handling.patch (LP: #1354114)
520+ * Added 0012-Race-condition-when-calling-stop_waiter_thread.patch (LP: #1354114)
521+ * Added 0013-multipath-clean-up-code-for-stopping-the-waiter-thre.patch (LP: #1354114)
522+ * Added 0014-Fix-race-condition-in-stop_waiter_thread.patch (LP: #1354114)
523+
524+ -- Rafael David Tinoco <rafael.tinoco@canonical.com> Tue, 02 Sep 2014 15:43:38 -0700
525+
526+multipath-tools (0.4.9-3ubuntu8) utopic; urgency=medium
527+
528+ * Remove RUN+="socket:" statement in rules file since it is
529+ no longer supported after version 178 (LP: #1240049)
530+
531+ -- Seyeong Kim <seyeong.kim@canonical.com> Fri, 18 Jul 2014 10:37:35 +0200
532+
533+multipath-tools (0.4.9-3ubuntu7) raring; urgency=low
534+
535+ * Add 0010-fix-extended-partitions.patch: Only expose the
536+ first two sectors of the extended partition (LP: #1093918).
537+
538+ -- Phillip Susi <psusi@ubuntu.com> Fri, 04 Jan 2013 16:14:34 -0500
539+
540+multipath-tools (0.4.9-3ubuntu6) quantal; urgency=low
541+
542+ * Rebuild for new armel compiler default of ARMv5t.
543+
544+ -- Colin Watson <cjwatson@ubuntu.com> Fri, 05 Oct 2012 14:00:37 +0100
545+
546+multipath-tools (0.4.9-3ubuntu5) precise; urgency=low
547+
548+ * Split kpartx initramfs bits into kpartx-boot for dmraid (LP: #941874)
549+
550+ -- Phillip Susi <psusi@ubuntu.com> Tue, 20 Mar 2012 15:26:22 -0400
551+
552+multipath-tools (0.4.9-3ubuntu4) precise; urgency=low
553+
554+ * Restore multipath-udeb dependency on multipath-modules (LP: #959749).
555+
556+ -- Colin Watson <cjwatson@ubuntu.com> Wed, 21 Mar 2012 14:34:01 +0000
557+
558+multipath-tools (0.4.9-3ubuntu3) precise; urgency=low
559+
560+ * Move kpartx from multipath-udeb to a new kpartx-udeb package
561+ (LP: #922646).
562+
563+ -- Colin Watson <cjwatson@ubuntu.com> Fri, 27 Jan 2012 23:04:23 +0000
564+
565+multipath-tools (0.4.9-3ubuntu2) precise; urgency=low
566+
567+ * Add 0009-fix-delim.patch: The 'p' delimiter was being added
568+ when it shouldn't.
569+
570+ -- Phillip Susi <psusi@ubuntu.com> Sun, 08 Jan 2012 20:57:47 -0500
571+
572+multipath-tools (0.4.9-3ubuntu1) precise; urgency=low
573+
574+ * Merge with Debian (for remaining changes, see 0.4.9-2ubuntu1).
575+
576+ -- Matthias Klose <doko@ubuntu.com> Sun, 04 Dec 2011 21:32:48 +0100
577+
578 multipath-tools (0.4.9-3) unstable; urgency=low
579
580 * [dd85b8b] Add example to kpartx manpage. Committed upstream.
581@@ -360,6 +911,36 @@ multipath-tools (0.4.9-3) unstable; urgency=low
582
583 -- Ritesh Raj Sarraf <rrs@debian.org> Sat, 03 Dec 2011 19:34:59 +0530
584
585+multipath-tools (0.4.9-2ubuntu1) oneiric; urgency=low
586+
587+ * Merge from debian unstable, remaining changes:
588+ - control:
589+ * Bump debhelper dependency to install udev rules to
590+ /lib/udev/rules.d, bump udev dependencies as well.
591+ * multipath-udeb must not depend on multipath-modules,
592+ because the Ubuntu kernel already includes the modules and no
593+ package provides m-m.
594+ - initramfs/hooks: use 95 not 60 for multipath rules priority
595+ - multipath-tools-boot.init: remove in favor of kpartx.udev rules (at top)
596+ - kpartx.udev:
597+ * add rule to load dm-multipath
598+ * use whole path when running /usr/lib/dmsetup_env
599+ * call kpartx through dmsetup for mpath-* devices
600+ * switch $name for $kernel for dmraid rule
601+ - multipath-tools.preinst: modprobe dm-multipath.
602+ This will make sure that multipathd will be able to start.
603+ - patches/1000--set-umask-in-multipathd.patch: Set umask in multipathd.
604+ - rules: Move udev rules to priority 95, because rules that load
605+ modules should be >90.
606+ - Have initramfs local-top start with scsi_wait_scan, and make sure all
607+ devices have been found before bothering to call udevadm settle.
608+ - debian/initramfs/local-top: wait for scsi_wait_scan
609+ * *.install: use /lib*/ instead of /lib/ to catch /lib64
610+ * debian/initramfs/local-top: remove '--timeout 10' which causes my
611+ test system to not boot roughly 3 out of 4 times.
612+
613+ -- Serge Hallyn <serge.hallyn@ubuntu.com> Mon, 06 Jun 2011 12:31:23 -0500
614+
615 multipath-tools (0.4.9-2) unstable; urgency=low
616
617 * [2544655] wait harder for multipath init. Thanks to Serge Hallyn for
618@@ -534,6 +1115,108 @@ multipath-tools (0.4.8-15) unstable; urgency=low
619
620 -- Guido Günther <agx@sigxcpu.org> Mon, 06 Apr 2009 19:36:25 +0200
621
622+multipath-tools (0.4.8-14ubuntu11) oneiric; urgency=low
623+
624+ * Fixes some return logic issues in the blacklist.c:_filter_path function
625+ where using blacklist and blacklist_exceptions would cause multipathd to
626+ improperly filter paths. (LP: #789229)
627+ - The patch was created by Christophe Varoqui in 2007.
628+ + http://www.redhat.com/archives/dm-devel/2007-November/msg00054.html
629+ + 0013-libmultipath-filter_path-fix_blacklist_filter_exit.patch
630+ - [serge-hallyn] swap in the whole upstream git commit and call it
631+ 0013-blacklist_exception_issues.patch.
632+
633+ -- Craig Magina <craig.magina@canonical.com> Fri, 27 May 2011 11:47:19 -0400
634+
635+multipath-tools (0.4.8-14ubuntu10) natty; urgency=low
636+
637+ * pass '-p part' to kpartx in initramfs script, not '-p p', to
638+ make sure /dev/mapper/ names are formed as expected. (LP: #712840)
639+
640+ -- Serge Hallyn <serge.hallyn@ubuntu.com> Thu, 03 Feb 2011 18:40:36 -0600
641+
642+multipath-tools (0.4.8-14ubuntu9) natty; urgency=low
643+
644+ * Fix segv caused by race condition with free_waiter threads during
645+ shutdown, using backport from upstream. (LP: #713237)
646+
647+ -- dann frazier <dann.frazier@canonical.com> Thu, 03 Feb 2011 16:37:10 -0700
648+
649+multipath-tools (0.4.8-14ubuntu8) natty; urgency=low
650+
651+ * Fix segv on shutdown when log buffer is empty, using patch cherry-picked
652+ from upstream. (LP: #488285)
653+
654+ -- Serge Hallyn <serge.hallyn@ubuntu.com> Tue, 01 Feb 2011 15:38:36 -0600
655+
656+multipath-tools (0.4.8-14ubuntu7) natty; urgency=low
657+
658+ * Add patch to fix the expected pathname from multipath uevents
659+ (LP: #660597)
660+
661+ -- Serge Hallyn <serge.hallyn@ubuntu.com> Tue, 04 Jan 2011 16:06:29 -0600
662+
663+multipath-tools (0.4.8-14ubuntu6) natty; urgency=low
664+
665+ * Fix in debian/kpartx.udev:
666+ - modprobe -q instead of incorrect modprobe -Q (LP: #644481)
667+
668+ -- Serge Hallyn <serge.hallyn@ubuntu.com> Tue, 04 Jan 2011 15:58:13 -0600
669+
670+multipath-tools (0.4.8-14ubuntu5) natty; urgency=low
671+
672+ * Make the initramfs local-top script wait until all devices
673+ are mapped, to make sure no /dev/sd* get mounted before
674+ multipath has a chance to take it. (LP: #686832)
675+
676+ -- Serge Hallyn <serge.hallyn@ubuntu.com> Tue, 04 Jan 2011 15:55:48 -0600
677+
678+multipath-tools (0.4.8-14ubuntu4) lucid; urgency=low
679+
680+ * debian/control: Move libreadline5-dev build dependency to libreadline-dev.
681+ (Already done in Debian).
682+
683+ -- Martin Pitt <martin.pitt@ubuntu.com> Mon, 08 Mar 2010 14:50:04 +0100
684+
685+multipath-tools (0.4.8-14ubuntu3) lucid; urgency=low
686+
687+ * Support failback for Intel Modular Server (LP: #520309).
688+
689+ -- Colin Watson <cjwatson@ubuntu.com> Fri, 12 Feb 2010 12:21:42 +0000
690+
691+multipath-tools (0.4.8-14ubuntu2) jaunty; urgency=low
692+
693+ * debian/kpartx.udev: Let dmsetup run kpartx, since $kernel doesn't map
694+ right.
695+ * debian/initramfs/hooks: Include /lib/udev/kpartx_id.
696+
697+ -- Timo Aaltonen <tjaalton@ubuntu.com> Tue, 10 Mar 2009 11:54:01 +0200
698+
699+multipath-tools (0.4.8-14ubuntu1) jaunty; urgency=low
700+
701+ * Merge from debian unstable, remaining changes:
702+ - control:
703+ + Bump debhelper dependency to install udev rules to
704+ /lib/udev/rules.d, bump udev dependencies as well.
705+ + multipath-udeb must not depend on multipath-modules,
706+ because the Ubuntu kernel already includes the modules and no
707+ package provides m-m.
708+ - initramfs/hooks: Install rules from /lib/udev/rules.d.
709+ - kpartx.udev, multipath-tools-boot.init:
710+ Replace multipath-tools-boot init script with udev rules.
711+ - multipath-tools.preinst: Fix preinst script to modprobe dm-multipath.
712+ This will make sure that multipathd will be able to start.
713+ - multipath-tools.prerm: Add prerm script to not fail when upgrading
714+ from a broken version of multipathd.
715+ - patches/1000--set-umask-in-multipathd.patch: Set umask in multipathd.
716+ - rules: Move udev rules to priority 95, because rules that load
717+ modules should be >90.
718+ * Fix bugs (LP: #316851, #320156)
719+ * multipath-tools.prerm/preinst: Remove checks for old ubuntu
720+ versions, we don't support upgrading from them anymore.
721+
722+ -- Timo Aaltonen <tjaalton@ubuntu.com> Thu, 12 Feb 2009 15:07:42 +0200
723+
724 multipath-tools (0.4.8-14) unstable; urgency=low
725
726 * [6dad4a0] kpartx: use uint64_t to account slices start/size based on
727@@ -596,6 +1279,64 @@ multipath-tools (0.4.8-11) unstable; urgency=low
728
729 -- Guido Guenther <agx@sigxcpu.org> Wed, 30 Jul 2008 17:59:03 -0400
730
731+multipath-tools (0.4.8-10ubuntu6) jaunty; urgency=low
732+
733+ * debian/multipath-tools.preinst: Use the same logic as in
734+ hw-detect to determine if dm_multipath is already loaded.
735+
736+ -- Timo Aaltonen <tjaalton@ubuntu.com> Thu, 15 Jan 2009 23:50:18 +0200
737+
738+multipath-tools (0.4.8-10ubuntu5) jaunty; urgency=low
739+
740+ * debian/initramfs/hooks: Install from /lib/udev/rules.d
741+
742+ -- Scott James Remnant <scott@ubuntu.com> Tue, 13 Jan 2009 03:05:02 +0000
743+
744+multipath-tools (0.4.8-10ubuntu4) jaunty; urgency=low
745+
746+ * Bump debhelper dependency to install udev rules to /lib/udev/rules.d,
747+ bump udev dependencies as well.
748+
749+ -- Scott James Remnant <scott@ubuntu.com> Mon, 12 Jan 2009 22:03:11 +0000
750+
751+multipath-tools (0.4.8-10ubuntu3) jaunty; urgency=low
752+
753+ * fix_udev_scsi_id_arguments.diff:
754+ Update the arguments for scsi_id. (LP: #306723)
755+ * fix_sysfs_layout.diff:
756+ Patch from upstream to use the new sysfs layout. (LP: #307032)
757+
758+ -- Timo Aaltonen <tjaalton@ubuntu.com> Thu, 18 Dec 2008 15:32:20 +0200
759+
760+multipath-tools (0.4.8-10ubuntu2) jaunty; urgency=low
761+
762+ * debian/control: multipath-udeb must not depend on multipath-modules,
763+ because the Ubuntu kernel already includes the modules and no
764+ package provides m-m.
765+ * debian/multipath-tools.preinst: Don't modprobe dm-multipath
766+ unconditionally, since it'll break during installation (no
767+ modprobe.dep) and when using a monolithic kernel. Instead check for
768+ these conditions. (LP: #182009)
769+
770+ -- Timo Aaltonen <tepsipakki@ubuntu.com> Tue, 02 Dec 2008 12:28:08 +0200
771+
772+multipath-tools (0.4.8-10ubuntu1) intrepid; urgency=low
773+
774+ * Merge from debian unstable, remaining changes:
775+ - Replace multipath-tools-boot init script with udev rules in
776+ kpartx.rules.
777+ - Move udev rules to priority 95, and drop call to dmsetup_env.
778+ - Add devices as they appear
779+ - Fix preinst script to modprobe dm-multipath. This will make sure
780+ that multipathd will be able to start.
781+ - Fix init script not to die on stop if multipathd is not running.
782+ - Add prerm script to not fail when upgrading from a broken version of
783+ multipathd.
784+ - Set umask in multipathd.
785+ - Handle udev rules priority change in preinst.
786+
787+ -- Soren Hansen <soren@ubuntu.com> Thu, 26 Jun 2008 08:55:33 +0200
788+
789 multipath-tools (0.4.8-10) unstable; urgency=low
790
791 * [183da2c] Add russion debconf translation (Closes: #486353) - thanks
792@@ -629,6 +1370,32 @@ multipath-tools (0.4.8-8) unstable; urgency=low
793
794 -- Guido Guenther <agx@sigxcpu.org> Sun, 09 Mar 2008 18:55:38 +0100
795
796+multipath-tools (0.4.8-7ubuntu2) hardy; urgency=low
797+
798+ * Install udev rules in initramfs.
799+ * Use temporary device name for creating partitions using kpartx.
800+ * Big thanks to Dag Stenstad for testing and helping with debugging!
801+
802+ -- Soren Hansen <soren@ubuntu.com> Wed, 19 Mar 2008 19:07:22 +0100
803+
804+multipath-tools (0.4.8-7ubuntu1) hardy; urgency=low
805+
806+ * Merge from debian unstable, remaining changes:
807+ - DebianMaintainerField.
808+ - Replace multipath-tools-boot init script with udev rules in
809+ kpartx.rules.
810+ - Move udev rules to priority 95, and drop call to dmsetup_env.
811+ - Add devices as they appear.
812+ - Fix preinst script to modprobe dm-multipath. This will make sure
813+ that multipathd will be able to start.
814+ - Add prerm script to not fail when upgrading from a broken version of
815+ multipathd.
816+ - Set umask in multipathd.
817+ - Handle udev rules priority change in preinst.
818+ * Dropped our hsg80 changes. Kernel handles this correctly now.
819+
820+ -- Soren Hansen <soren@ubuntu.com> Mon, 28 Jan 2008 11:09:45 +0100
821+
822 multipath-tools (0.4.8-7) unstable; urgency=low
823
824 * add watch file
825@@ -650,6 +1417,26 @@ multipath-tools (0.4.8-6) unstable; urgency=low
826
827 -- Guido Guenther <agx@sigxcpu.org> Sat, 01 Dec 2007 15:41:36 +0100
828
829+multipath-tools (0.4.8-5ubuntu1) hardy; urgency=low
830+
831+ * Merge from debian unstable, remaining changes:
832+ - DebianMaintainerField.
833+ - Suggest sg3-utils, Conflict with sg-utils.
834+ - Replace multipath-tools-boot init script with udev rules in
835+ kpartx.rules.
836+ - Add /sbin/hsg80_start.
837+ - Move udev rules to priority 95, and drop call to dmsetup_env.
838+ - Add devices as they appear
839+ - Fix preinst script to modprobe dm-multipath. This will make sure
840+ that multipathd will be able to start.
841+ - Fix init script not to die on stop if multipathd is not running.
842+ - Add prerm script to not fail when upgrading from a broken version of
843+ multipathd.
844+ - Set umask in multipathd.
845+ - Handle udev rules priority change in preinst.
846+
847+ -- Soren Hansen <soren@ubuntu.com> Thu, 13 Dec 2007 03:03:31 +0100
848+
849 multipath-tools (0.4.8-5) unstable; urgency=low
850
851 * apply kpartx-fix-udev-dmraid.diff to our shipped udev rules too
852@@ -764,6 +1551,34 @@ multipath-tools (0.4.7-3) experimental; urgency=low
853
854 -- Guido Guenther <agx@sigxcpu.org> Fri, 08 Jun 2007 11:51:00 +0200
855
856+multipath-tools (0.4.7-2ubuntu3) gutsy; urgency=low
857+
858+ * Fix preinst script to modprobe dm-multipath. This will make sure
859+ that multipathd will be able to start.
860+
861+ * Fix init script not to die on stop if multipathd is not running.
862+
863+ * Add prerm script to not fail when upgrading from a broken version of
864+ multipathd.
865+
866+ -- Fabio M. Di Nitto <fabbione@ubuntu.com> Fri, 10 Aug 2007 13:03:39 +0200
867+
868+multipath-tools (0.4.7-2ubuntu2) gutsy; urgency=low
869+
870+ * Fix udev rule to load dm-multipath.
871+
872+ -- Fabio M. Di Nitto <fabbione@ubuntu.com> Wed, 13 Jun 2007 11:56:52 +0200
873+
874+multipath-tools (0.4.7-2ubuntu1) gutsy; urgency=low
875+
876+ * Merge from debian unstable, remaining changes:
877+ - Remove multipath-tools-boot init script in favour of udev rules.
878+ - Update udev rules as described in 0.4.7-1.1ubuntu3.
879+ - Add /sbin/hsg80_start as described in 0.4.7-1.1ubuntu3.
880+ - debian/control Ubuntu maintainer foobar.
881+
882+ -- Fabio M. Di Nitto <fabbione@ubuntu.com> Wed, 16 May 2007 11:02:20 +0200
883+
884 multipath-tools (0.4.7-2) unstable; urgency=low
885
886 [ Bastian Blank ]
887@@ -781,6 +1596,42 @@ multipath-tools (0.4.7-2) unstable; urgency=low
888
889 -- Guido Guenther <agx@sigxcpu.org> Wed, 20 Dec 2006 17:40:59 +0100
890
891+multipath-tools (0.4.7-1.1ubuntu3) feisty; urgency=low
892+
893+ * Remove multipath-tools-boot init script.
894+
895+ * Wild changes and updates to udev rules:
896+ - All the hsg80 MULTIBUS FAILOVER are now handled here.
897+ - Fix rule to call kpartx also on "change" udev events.
898+ - Invoke multipath -v 0 device to make sure we hot plug
899+ all devices into multipath.
900+
901+ * Add /sbin/hsg80_start that wraps all the work to make an hsg80 in
902+ MULTIBUS FAILOVER working properly.
903+ This is automatically called by udev.
904+
905+ (Closes LP: #98518)
906+
907+ -- Fabio M. Di Nitto <fabbione@ubuntu.com> Wed, 04 Apr 2007 08:17:48 +0200
908+
909+multipath-tools (0.4.7-1.1ubuntu2) feisty; urgency=low
910+
911+ * Remove devmap_name from this package, and Depend on dmsetup instead.
912+ Fixes file overwrite conflict with dmsetup. (LP 84894.)
913+
914+ -- Ian Jackson <iwj@ubuntu.com> Tue, 13 Feb 2007 16:16:46 +0000
915+
916+multipath-tools (0.4.7-1.1ubuntu1) feisty; urgency=low
917+
918+ * Merge from debian unstable, remaining changes:
919+ - remove stop links from rc0 and rc6
920+ - suggest sg3-utils, conflict sg-utils
921+ - fix path to scsi_id
922+ - ubuntu udev rules
923+ - set umask
924+
925+ -- Scott James Remnant <scott@ubuntu.com> Tue, 28 Nov 2006 15:24:16 +0000
926+
927 multipath-tools (0.4.7-1.1) unstable; urgency=medium
928
929 * Added missing dependency on dmsetup. Closes: #381068.
930@@ -793,6 +1644,77 @@ multipath-tools (0.4.7-1.1) unstable; urgency=medium
931
932 -- John Goerzen <jgoerzen@complete.org> Wed, 9 Aug 2006 11:52:08 -0500
933
934+multipath-tools (0.4.7-1ubuntu8) edgy; urgency=low
935+
936+ * Remove stop script symlinks from rc0 and rc6.
937+
938+ -- Scott James Remnant <scott@ubuntu.com> Fri, 15 Sep 2006 17:30:19 +0100
939+
940+multipath-tools (0.4.7-1ubuntu7) dapper; urgency=low
941+
942+ * Fix typo in init script that was executing hsg80_init unconditionally.
943+
944+ * Suggests: sg3-utils and Conflicts: sg-utils (obsoleted).
945+
946+ -- Fabio M. Di Nitto <fabbione@ubuntu.com> Mon, 22 May 2006 09:56:07 +0200
947+
948+multipath-tools (0.4.7-1ubuntu6) dapper; urgency=low
949+
950+ * no changes upload to rebuild with new libdevmapper.
951+
952+ -- Fabio M. Di Nitto <fabbione@ubuntu.com> Wed, 10 May 2006 09:31:20 +0200
953+
954+multipath-tools (0.4.7-1ubuntu5) dapper; urgency=low
955+
956+ The "give Scott a crying biscuit" release.
957+
958+ * Apply patch from Dennis Kaarsemaker.
959+ (Closes Ubuntu: #41318)
960+
961+ -- Fabio M. Di Nitto <fabbione@ubuntu.com> Wed, 26 Apr 2006 10:20:07 +0200
962+
963+multipath-tools (0.4.7-1ubuntu4) dapper; urgency=low
964+
965+ * Remove 2 extra lines from multipath.rules that were really not supposed
966+ to be there.
967+
968+ -- Fabio M. Di Nitto <fabbione@ubuntu.com> Thu, 06 Apr 2006 17:43:10 +0200
969+
970+multipath-tools (0.4.7-1ubuntu3) dapper; urgency=low
971+
972+ * Add hsg80_init function to multipath-tools-boot init script.
973+ The script takes care to perform a proper initialization of the disks
974+ when the hsg80 is configured in multibus failover mode.
975+
976+ NOTE: multipathd is not able to understand properly what happens in this
977+ multi-bugs situation and it will require manual kill and restart once
978+ the disks have been readded to the system, otherwise failover is not
979+ guaranteed and syslog will be flooded.
980+
981+ -- Fabio M. Di Nitto <fabbione@ubuntu.com> Thu, 06 Apr 2006 09:33:51 +0200
982+
983+multipath-tools (0.4.7-1ubuntu2) dapper; urgency=low
984+
985+ * Fix socket permissions.
986+
987+ -- Fabio M. Di Nitto <fabbione@ubuntu.com> Tue, 04 Apr 2006 18:20:20 +0200
988+
989+multipath-tools (0.4.7-1ubuntu1) dapper; urgency=low
990+
991+ * Fix path to scsi_id.
992+
993+ * Make install: target depends on build in debian/rules.
994+
995+ * Change NAME to multipathd in init scripts so that we can actually stop
996+ multipathd.
997+
998+ * Swap multipath-tools-boot and multipath-tools init scripts order in
999+ postinst and make multipath-tools-boot start.
1000+
1001+ * UVF exception granted by Colin Watson.
1002+
1003+ -- Fabio M. Di Nitto <fabbione@ubuntu.com> Tue, 04 Apr 2006 06:31:09 +0200
1004+
1005 multipath-tools (0.4.7-1) unstable; urgency=low
1006
1007 * New upstream version.
1008@@ -896,4 +1818,3 @@ multipath-tools (0.3.6-1) unstable; urgency=low
1009
1010 -- Patrick Caulfield <patrick@debian.org> Wed, 3 Nov 2004 10:16:34 +0000
1011
1012-
1013diff --git a/debian/control b/debian/control
1014index e057a42..4a2993e 100644
1015--- a/debian/control
1016+++ b/debian/control
1017@@ -1,7 +1,8 @@
1018 Source: multipath-tools
1019 Section: admin
1020 Priority: extra
1021-Maintainer: Debian LVM Team <pkg-lvm-maintainers@lists.alioth.debian.org>
1022+Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
1023+XSBC-Original-Maintainer: Debian LVM Team <pkg-lvm-maintainers@lists.alioth.debian.org>
1024 Uploaders: Guido Günther <agx@sigxcpu.org>, Ritesh Raj Sarraf <rrs@debian.org>
1025 Build-Depends: debhelper (>= 9), po-debconf, libdevmapper-dev (>= 2:1.02.20), libreadline-dev, libaio-dev, dpkg-dev (>= 1.16.1~), libudev-dev, libsystemd-dev, systemd, dh-systemd, liburcu-dev, librados-dev
1026 Vcs-Git: https://anonscm.debian.org/git/pkg-lvm/multipath-tools.git
1027@@ -11,9 +12,9 @@ Homepage: http://christophe.varoqui.free.fr/
1028
1029 Package: multipath-tools
1030 Architecture: linux-any
1031-Depends: ${shlibs:Depends}, ${misc:Depends}, udev (>= 0.124), kpartx (>= ${binary:Version}), lsb-base (>= 3.0-6), libaio1 (>= 0.3.106-8), sg3-utils-udev
1032+Depends: ${shlibs:Depends}, ${misc:Depends}, udev (>> 136-1), kpartx (>= ${binary:Version}), lsb-base (>= 3.0-6), libaio1 (>= 0.3.106-8), sg3-utils-udev
1033 Breaks: multipath-tools-initramfs (<= 1.0.1),
1034- multipath-tools-boot (<= 0.4.8+git0.761c66f-2~)
1035+ multipath-tools-boot (<< 0.6.3-2ubuntu1)
1036 Suggests: multipath-tools-boot
1037 Description: maintain multipath block device access
1038 These tools are in charge of maintaining the disk multipath device maps and
1039@@ -24,18 +25,28 @@ Description: maintain multipath block device access
1040
1041 Package: kpartx
1042 Architecture: linux-any
1043-Depends: ${shlibs:Depends}, ${misc:Depends}, udev (>> 0.086), dmsetup (>= 2:1.02.24)
1044+Depends: ${shlibs:Depends}, ${misc:Depends}, udev (>> 136-1), dmsetup (>= 2:1.02.24)
1045 Replaces: multipath-tools (<< 0.4.7-3)
1046 Description: create device mappings for partitions
1047 Kpartx can be used to set up device mappings for the partitions of any
1048 partitioned block device. It is part of the Linux multipath-tools.
1049
1050+Package: kpartx-boot
1051+Architecture: all
1052+Depends: ${misc:Depends}, initramfs-tools,
1053+ kpartx (>= ${source:Version}), kpartx (<< ${source:Version}.1~)
1054+Description: Provides kpartx during boot
1055+ This package makes kpartx available during boot to activate partitions
1056+
1057 Package: multipath-tools-boot
1058 Architecture: all
1059 Depends: ${misc:Depends}, initramfs-tools,
1060- multipath-tools (>= ${source:Version}), multipath-tools (<< ${source:Version}.1~)
1061-Replaces: multipath-tools-initramfs (<< 1.0.1+nmu1)
1062-Breaks: multipath-tools-initramfs (<< 1.0.1+nmu1)
1063+ multipath-tools (>= ${source:Version}), multipath-tools (<< ${source:Version}.1~),
1064+ kpartx-boot (= ${binary:Version})
1065+Replaces: multipath-tools-initramfs (<< 1.0.1+nmu1),
1066+ multipath-tools (<< 0.6.3-2ubuntu1)
1067+Breaks: multipath-tools-initramfs (<< 1.0.1+nmu1),
1068+ multipath-tools (<< 0.6.3-2ubuntu1)
1069 Description: Support booting from multipath devices
1070 This package contains the necessary support for booting from a multipath
1071 device:
1072@@ -49,7 +60,7 @@ Description: Support booting from multipath devices
1073 Package: multipath-udeb
1074 Package-Type: udeb
1075 Architecture: linux-any
1076-Depends: ${shlibs:Depends}, ${misc:Depends}, multipath-modules, kpartx-udeb
1077+Depends: ${shlibs:Depends}, ${misc:Depends}, multipath-modules, kpartx-udeb, sg3-udeb
1078 Section: debian-installer
1079 Description: maintain multipath block device access - udeb package
1080 This is a udeb, or a microdeb, for the debian-installer.
1081diff --git a/debian/initramfs/hooks b/debian/initramfs/hooks
1082index 4b60873..7932064 100644
1083--- a/debian/initramfs/hooks
1084+++ b/debian/initramfs/hooks
1085@@ -25,9 +25,17 @@ add_bindings()
1086 fi
1087 }
1088
1089+add_wwids()
1090+{
1091+ if [ -r /etc/multipath/wwids ]; then
1092+ mkdir -p $DESTDIR/etc/multipath
1093+ cp /etc/multipath/wwids $DESTDIR/etc/multipath
1094+ fi
1095+}
1096+
1097 add_udev_rules()
1098 {
1099- for rules in 60-multipath.rules 60-kpartx.rules; do
1100+ for rules in 56-dm-mpath-lvm.rules 95-multipath.rules; do
1101 if [ -e /lib/udev/rules.d/$rules ]; then
1102 cp -p /lib/udev/rules.d/$rules $DESTDIR/lib/udev/rules.d/
1103 fi
1104@@ -43,10 +51,21 @@ mkdir -p $DESTDIR/lib/multipath/
1105 for x in /lib/multipath/*; do
1106 copy_exec $x /lib/multipath/
1107 done
1108+copy_exec /usr/bin/partx
1109 add_udev_rules
1110
1111+copy_exec /sbin/multipathd /sbin
1112+# multipathd requires libgcc_s.so.1 (not handled by copy_exec() as it's dlopen()'ed).
1113+# hack: find libgcc_s.so.1 via ldconfig cache (dpkg-architecture pulls lots of deps).
1114+for x in $(ldconfig --print-cache | grep -o '/lib/.*/libgcc_s\.so\.1'); do
1115+ copy_exec $x $(dirname $x)
1116+done
1117+# multipathd requires /var/run/multipathd.pid
1118+mkdir -p $DESTDIR/var/run
1119+
1120 [ -r /etc/multipath.conf ] && cp /etc/multipath.conf $DESTDIR/etc/
1121 add_bindings
1122+add_wwids
1123
1124 for x in dm-multipath dm-service-time dm-round-robin dm-emc; do
1125 manual_add_modules ${x}
1126diff --git a/debian/initramfs/init-top b/debian/initramfs/init-top
1127index 51637e9..883d7f9 100644
1128--- a/debian/initramfs/init-top
1129+++ b/debian/initramfs/init-top
1130@@ -1,6 +1,6 @@
1131 #!/bin/sh
1132 #
1133-# multipath hardware handler
1134+# multipath: load modules and daemon
1135
1136 PREREQ=" "
1137
1138@@ -26,7 +26,18 @@ verbose()
1139
1140 maybe_break pre-multipath
1141 VERBOSITY=0
1142-HW_HANDLERS=""
1143+HW_HANDLERS="scsi_dh_alua scsi_dh_rdac scsi_dh_emc"
1144+MP_MODULES="dm-multipath"
1145+
1146+verbose && log_begin_msg "Loading multipath modules"
1147+for module in ${MP_MODULES}; do
1148+ if modprobe --syslog "$module"; then
1149+ verbose && log_success_msg "loaded module ${module}."
1150+ else
1151+ log_failure_msg "failed to load module ${module}."
1152+ fi
1153+done
1154+verbose && log_end_msg
1155
1156 verbose && log_begin_msg "Loading multipath hardware handlers"
1157 for module in ${HW_HANDLERS}; do
1158@@ -38,6 +49,11 @@ for module in ${HW_HANDLERS}; do
1159 done
1160 verbose && log_end_msg
1161
1162+# Start multipathd
1163+verbose && log_begin_msg "Starting multipathd"
1164+/sbin/multipathd -B
1165+verbose && log_end_msg
1166+
1167 maybe_break post-multipath
1168
1169 exit 0
1170diff --git a/debian/initramfs/kpartx.hook b/debian/initramfs/kpartx.hook
1171new file mode 100644
1172index 0000000..ead2c77
1173--- /dev/null
1174+++ b/debian/initramfs/kpartx.hook
1175@@ -0,0 +1,20 @@
1176+#!/bin/sh
1177+
1178+PREREQS="udev"
1179+
1180+prereqs() { echo "$PREREQS"; }
1181+
1182+case $1 in
1183+prereqs)
1184+ prereqs
1185+ exit 0
1186+ ;;
1187+esac
1188+
1189+. /usr/share/initramfs-tools/hook-functions
1190+
1191+copy_exec /sbin/kpartx /sbin
1192+copy_exec /sbin/dmsetup /sbin
1193+copy_exec /lib/udev/dmsetup_env /lib/udev
1194+copy_exec /lib/udev/kpartx_id /lib/udev
1195+cp -p /lib/udev/rules.d/95-kpartx.rules $DESTDIR/lib/udev/rules.d/
1196diff --git a/debian/initramfs/local-bottom b/debian/initramfs/local-bottom
1197new file mode 100644
1198index 0000000..5e9147b
1199--- /dev/null
1200+++ b/debian/initramfs/local-bottom
1201@@ -0,0 +1,49 @@
1202+#!/bin/sh
1203+#
1204+# multipathd shutdown
1205+
1206+PREREQ=""
1207+
1208+prereqs() { echo "$PREREQ"; }
1209+
1210+case $1 in
1211+prereqs)
1212+ prereqs
1213+ exit 0
1214+ ;;
1215+esac
1216+
1217+. /scripts/functions
1218+
1219+verbose()
1220+{
1221+ case "$quiet" in y*|Y*|1|t*|T*)
1222+ return 1;;
1223+ *)
1224+ return 0;;
1225+ esac
1226+}
1227+
1228+maybe_break pre-multipath
1229+
1230+if [ ! -e /sbin/multipathd ]; then
1231+ exit 0
1232+fi
1233+
1234+# Stop multipathd
1235+verbose && log_begin_msg "Stopping multipathd"
1236+
1237+pid_pidof="$(pidof multipathd)"
1238+pid_file="$(cat /var/run/multipathd.pid)"
1239+
1240+if [ "${pid_pidof}" = "${pid_file}" ]; then
1241+ kill ${pid_pidof}
1242+ verbose && log_end_msg
1243+else
1244+ verbose && log_failure_msg "inconsistent PIDs (pidof: '${pid_pidof}', multipathd.pid: '${pid_file}')"
1245+fi
1246+
1247+maybe_break post-multipath
1248+
1249+exit 0
1250+
1251diff --git a/debian/initramfs/local-premount b/debian/initramfs/local-premount
1252new file mode 100644
1253index 0000000..050f97b
1254--- /dev/null
1255+++ b/debian/initramfs/local-premount
1256@@ -0,0 +1,30 @@
1257+#!/bin/sh
1258+
1259+set -e
1260+
1261+PREREQ=""
1262+
1263+prereqs()
1264+{
1265+ echo "${PREREQ}"
1266+}
1267+
1268+case "${1}" in
1269+ prereqs)
1270+ prereqs
1271+ exit 0
1272+ ;;
1273+esac
1274+
1275+. /scripts/functions
1276+
1277+if [ -x /sbin/multipath ]
1278+then
1279+ [ "$quiet" != "y" ] && log_begin_msg "Waiting for udev to settle (multipath)"
1280+ udevadm settle --timeout=121 || true
1281+ [ "$quiet" != "y" ] && log_end_msg
1282+fi
1283+
1284+multipath -r -v0 -B
1285+
1286+exit 0
1287diff --git a/debian/initramfs/local-top b/debian/initramfs/local-top
1288deleted file mode 100644
1289index 33a6a29..0000000
1290--- a/debian/initramfs/local-top
1291+++ /dev/null
1292@@ -1,60 +0,0 @@
1293-#!/bin/sh
1294-#
1295-# multipath discovery
1296-
1297-PREREQ="udev iscsi"
1298-
1299-prereqs() { echo "$PREREQ"; }
1300-
1301-case $1 in
1302-prereqs)
1303- prereqs
1304- exit 0
1305- ;;
1306-esac
1307-
1308-. /scripts/functions
1309-
1310-verbose()
1311-{
1312- case "$quiet" in y*|Y*|1|t*|T*)
1313- return 1;;
1314- *)
1315- return 0;;
1316- esac
1317-}
1318-
1319-maybe_break pre-multipath
1320-VERBOSITY=0
1321-MP_MODULES="dm-multipath dm-emc"
1322-
1323-if [ ! -e /sbin/multipath ]; then
1324- exit 0
1325-fi
1326-
1327-verbose && log_begin_msg "Loading multipath modules"
1328-for module in ${MP_MODULES}; do
1329- if modprobe "$module"; then
1330- verbose && log_success_msg "loaded module ${module}."
1331- else
1332- log_failure_msg "failed to load module ${module}."
1333- fi
1334-done
1335-verbose && log_end_msg
1336-
1337-verbose && log_begin_msg "Discovering multipaths"
1338-/sbin/multipath -v $VERBOSITY
1339-verbose && log_end_msg
1340-
1341-if [ -x /sbin/kpartx -a -x /sbin/dmsetup ]; then
1342- /sbin/dmsetup ls --target multipath --exec "/sbin/kpartx -a -p -part" >/dev/null
1343-fi
1344-
1345-if [ -x /sbin/udevadm ]; then
1346- /sbin/udevadm settle --timeout=10
1347-fi
1348-
1349-maybe_break post-multipath
1350-
1351-exit 0
1352-
1353diff --git a/debian/kpartx-boot.postinst b/debian/kpartx-boot.postinst
1354new file mode 100644
1355index 0000000..6257dc3
1356--- /dev/null
1357+++ b/debian/kpartx-boot.postinst
1358@@ -0,0 +1,34 @@
1359+#!/bin/sh
1360+# postinst script for kpartx-boot
1361+#
1362+# see: dh_installdeb(1)
1363+
1364+set -e
1365+
1366+# Source debconf library.
1367+. /usr/share/debconf/confmodule
1368+
1369+case "$1" in
1370+ configure)
1371+ if [ -x /usr/sbin/update-initramfs -a -e /etc/initramfs-tools/initramfs.conf ]; then
1372+ update-initramfs -u
1373+ fi
1374+ ;;
1375+
1376+ abort-upgrade|abort-remove|abort-deconfigure)
1377+ ;;
1378+
1379+ *)
1380+ echo "postinst called with unknown argument \`$1'" >&2
1381+ exit 1
1382+ ;;
1383+esac
1384+
1385+# dh_installdeb will replace this with shell code automatically
1386+# generated by other debhelper scripts.
1387+
1388+#DEBHELPER#
1389+
1390+exit 0
1391+
1392+
1393diff --git a/debian/kpartx-boot.postrm b/debian/kpartx-boot.postrm
1394new file mode 100644
1395index 0000000..daca462
1396--- /dev/null
1397+++ b/debian/kpartx-boot.postrm
1398@@ -0,0 +1,45 @@
1399+#!/bin/sh
1400+# postrm script for kpartx-boot
1401+#
1402+# see: dh_installdeb(1)
1403+
1404+set -e
1405+
1406+# summary of how this script can be called:
1407+# * <postrm> `remove'
1408+# * <postrm> `purge'
1409+# * <old-postrm> `upgrade' <new-version>
1410+# * <new-postrm> `failed-upgrade' <old-version>
1411+# * <new-postrm> `abort-install'
1412+# * <new-postrm> `abort-install' <old-version>
1413+# * <new-postrm> `abort-upgrade' <old-version>
1414+# * <disappearer's-postrm> `disappear' <overwriter>
1415+# <overwriter-version>
1416+# for details, see http://www.debian.org/doc/debian-policy/ or
1417+# the debian-policy package
1418+
1419+
1420+case "$1" in
1421+ remove)
1422+ if [ -x /usr/sbin/update-initramfs -a -e /etc/initramfs-tools/initramfs.conf ]; then
1423+ update-initramfs -u
1424+ fi
1425+ ;;
1426+
1427+ purge|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
1428+ ;;
1429+
1430+ *)
1431+ echo "postrm called with unknown argument \`$1'" >&2
1432+ exit 1
1433+ ;;
1434+esac
1435+
1436+# dh_installdeb will replace this with shell code automatically
1437+# generated by other debhelper scripts.
1438+
1439+#DEBHELPER#
1440+
1441+exit 0
1442+
1443+
1444diff --git a/debian/kpartx.install b/debian/kpartx.install
1445index eb9431e..c69cb2b 100644
1446--- a/debian/kpartx.install
1447+++ b/debian/kpartx.install
1448@@ -1,4 +1,4 @@
1449 /usr/share/man/man8/kpartx.8.gz
1450 /sbin/kpartx
1451-/lib/udev/kpartx_id
1452-/lib/udev/dmsetup_env
1453+/lib*/udev/kpartx_id
1454+/lib*/udev/dmsetup_env
1455diff --git a/debian/multipath-tools.dm-mpath-lvm.udev b/debian/multipath-tools.dm-mpath-lvm.udev
1456new file mode 100644
1457index 0000000..4698023
1458--- /dev/null
1459+++ b/debian/multipath-tools.dm-mpath-lvm.udev
1460@@ -0,0 +1,26 @@
1461+# An individual device may be part of a multipath device.
1462+# In such case, remove its partition device nodes so for
1463+# LVM to scan/lock/use only the multipath device.
1464+# - Check it on 'add' uevent.
1465+# - Check it on 'change' uevent (it may change).
1466+
1467+SUBSYSTEM!="block", \
1468+ GOTO="end_mpath"
1469+
1470+ACTION=="remove", \
1471+ GOTO="end_mpath"
1472+
1473+ENV{DEVTYPE}=="partition", \
1474+ IMPORT{parent}="DM_MULTIPATH_DEVICE_PATH", \
1475+ GOTO="end_mpath"
1476+
1477+PROGRAM=="/sbin/multipath -u $devnode", \
1478+ ENV{DM_MULTIPATH_DEVICE_PATH}="1", \
1479+ ENV{ID_FS_TYPE}="mpath_member", \
1480+ RUN+="/usr/bin/partx -d --nr 1-1024 $devnode", \
1481+ GOTO="end_mpath"
1482+
1483+# Not part of a multipath device.
1484+ENV{DM_MULTIPATH_DEVICE_PATH}=""
1485+
1486+LABEL="end_mpath"
1487diff --git a/debian/multipath-tools.preinst b/debian/multipath-tools.preinst
1488index 50f8864..74419d2 100644
1489--- a/debian/multipath-tools.preinst
1490+++ b/debian/multipath-tools.preinst
1491@@ -32,6 +32,10 @@ case "$1" in
1492 ;;
1493 esac
1494
1495+if ! dmsetup targets | cut -d' ' -f1 | grep -q '^multipath$'; then
1496+ modprobe -v dm-multipath || true
1497+fi
1498+
1499 #DEBHELPER#
1500
1501 exit 0
1502diff --git a/debian/patches/1000--set-umask-in-multipathd.patch b/debian/patches/1000--set-umask-in-multipathd.patch
1503new file mode 100644
1504index 0000000..2dd83f3
1505--- /dev/null
1506+++ b/debian/patches/1000--set-umask-in-multipathd.patch
1507@@ -0,0 +1,30 @@
1508+---
1509+ multipathd/uxlsnr.c | 6 ++++++
1510+ 1 file changed, 6 insertions(+)
1511+
1512+--- a/multipathd/uxlsnr.c
1513++++ b/multipathd/uxlsnr.c
1514+@@ -20,6 +20,7 @@
1515+ #include <sys/socket.h>
1516+ #include <sys/un.h>
1517+ #include <poll.h>
1518++#include <sys/stat.h>
1519+ #include <sys/time.h>
1520+ #include <signal.h>
1521+ #include "checkers.h"
1522+@@ -133,10 +134,15 @@
1523+ char *inbuf;
1524+ char *reply;
1525+ sigset_t mask;
1526++ mode_t mode_mask;
1527+ int old_clients = MIN_POLLS;
1528+
1529++ mode_mask=umask(0177);
1530++
1531+ ux_sock = ux_socket_listen(DEFAULT_SOCKET);
1532+
1533++ umask(mode_mask);
1534++
1535+ if (ux_sock == -1) {
1536+ condlog(1, "could not create uxsock: %d", errno);
1537+ return NULL;
1538diff --git a/debian/patches/disable-fexceptions-udeb.patch b/debian/patches/disable-fexceptions-udeb.patch
1539new file mode 100644
1540index 0000000..acd33b1
1541--- /dev/null
1542+++ b/debian/patches/disable-fexceptions-udeb.patch
1543@@ -0,0 +1,16 @@
1544+From: Mauricio Faria de Oliveira <mauricfo@linux.vnet.ibm.com>
1545+Subject: Make the use of -fexceptions conditional.
1546+Last-Update: 2015-09-09
1547+
1548+--- a/Makefile.inc
1549++++ b/Makefile.inc
1550+@@ -69,5 +69,9 @@
1551+ LDFLAGS = $(shell dpkg-buildflags --get LDFLAGS)
1552+ SHARED_FLAGS = -shared
1553+
1554++ifdef CFLAGS_DISABLE_FEXCEPTIONS
1555++ CFLAGS := $(filter-out -fexceptions,$(CFLAGS))
1556++endif
1557++
1558+ %.o: %.c
1559+ $(CC) $(CFLAGS) -c -o $@ $<
1560diff --git a/debian/patches/enable-find-multipaths.patch b/debian/patches/enable-find-multipaths.patch
1561new file mode 100644
1562index 0000000..a491018
1563--- /dev/null
1564+++ b/debian/patches/enable-find-multipaths.patch
1565@@ -0,0 +1,11 @@
1566+--- a/libmultipath/defaults.h
1567++++ b/libmultipath/defaults.h
1568+@@ -17,7 +17,7 @@
1569+ #define DEFAULT_NO_PATH_RETRY NO_PATH_RETRY_UNDEF
1570+ #define DEFAULT_VERBOSITY 2
1571+ #define DEFAULT_REASSIGN_MAPS 0
1572+-#define DEFAULT_FIND_MULTIPATHS 0
1573++#define DEFAULT_FIND_MULTIPATHS 1
1574+ #define DEFAULT_FAST_IO_FAIL 5
1575+ #define DEFAULT_DEV_LOSS_TMO 600
1576+ #define DEFAULT_RETAIN_HWHANDLER RETAIN_HWHANDLER_ON
1577diff --git a/debian/patches/kpartx_more_loopback_fixes.patch b/debian/patches/kpartx_more_loopback_fixes.patch
1578new file mode 100644
1579index 0000000..239dbcf
1580--- /dev/null
1581+++ b/debian/patches/kpartx_more_loopback_fixes.patch
1582@@ -0,0 +1,40 @@
1583+From: Mathieu Trudel-Lapierre <mathieu.trudel-lapierre@canonical.com>
1584+Subject: Fix kpartx some more to correctly remove loopback devices on delete.
1585+Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/multipath-tools/+bug/1543430
1586+
1587+Loop devices get created when using kpartx with an image file, but should be
1588+removed afterwards when using kpartx -d. Unfortunately, the devmapper maps
1589+did get removed but not the losetup nodes behind it, which were still bound
1590+to the image file. This is because we re-stat the loop device once we've
1591+figured which one to use, since otherwise we wouldn't have major and minor
1592+numbers for a loopback file; yet we need those to create the devmapper maps
1593+reliably.
1594+
1595+Instead of checking if we're dealing with a regular type file (since after
1596+stat() we'd not have the S_ISREG check succeed since we stat()'ed a device),
1597+use the loopdev variable. It's equivalent to device but only set if we've been
1598+called to work on an image.
1599+
1600+*update*
1601+This got partially upstream with the following patch - maybe we can drop it now?:
1602+commit ed4c3119cc1d6bc6656cf84d1e9c1ab184d87814
1603+Author: Christian Kastner <ckk@kvr.at>
1604+Date: Wed Jul 13 19:23:02 2016 +0200
1605+ kpartx: Fix check whether to detach loop device
1606+
1607+
1608+---
1609+ kpartx/kpartx.c | 4 ++--
1610+ 1 file changed, 2 insertions(+), 2 deletions(-)
1611+
1612+--- a/kpartx/kpartx.c
1613++++ b/kpartx/kpartx.c
1614+@@ -678,7 +678,7 @@
1615+ if (n > 0)
1616+ break;
1617+ }
1618+- if (what == LIST && loopcreated && S_ISREG (buf.st_mode)) {
1619++ if (what == LIST && loopcreated && loopdev) {
1620+ if (fd != -1)
1621+ close(fd);
1622+ if (del_loop(device)) {
1623diff --git a/debian/patches/path_selector.patch b/debian/patches/path_selector.patch
1624new file mode 100644
1625index 0000000..649d517
1626--- /dev/null
1627+++ b/debian/patches/path_selector.patch
1628@@ -0,0 +1,15 @@
1629+---
1630+ libmultipath/defaults.h | 2 +-
1631+ 1 file changed, 1 insertion(+), 1 deletion(-)
1632+
1633+--- a/libmultipath/defaults.h
1634++++ b/libmultipath/defaults.h
1635+@@ -5,7 +5,7 @@
1636+ #define DEFAULT_UID_ATTRIBUTE "ID_SERIAL"
1637+ #define DEFAULT_UDEVDIR "/dev"
1638+ #define DEFAULT_MULTIPATHDIR "/" LIB_STRING "/multipath"
1639+-#define DEFAULT_SELECTOR "service-time 0"
1640++#define DEFAULT_SELECTOR "round-robin 0"
1641+ #define DEFAULT_ALIAS_PREFIX "mpath"
1642+ #define DEFAULT_FEATURES "0"
1643+ #define DEFAULT_HWHANDLER "0"
1644diff --git a/debian/patches/series b/debian/patches/series
1645index dbd7009..0ad2aa7 100644
1646--- a/debian/patches/series
1647+++ b/debian/patches/series
1648@@ -5,3 +5,8 @@
1649 systemd-alias.patch
1650 disable-systemd-for-udeb.patch
1651 disable-rados-link-for-udeb.patch
1652+1000--set-umask-in-multipathd.patch
1653+path_selector.patch
1654+disable-fexceptions-udeb.patch
1655+kpartx_more_loopback_fixes.patch
1656+enable-find-multipaths.patch
1657diff --git a/debian/rules b/debian/rules
1658index 31dc863..82cde2a 100755
1659--- a/debian/rules
1660+++ b/debian/rules
1661@@ -44,7 +44,7 @@ build-stamp: clean-tree
1662 build-multipath-udeb-stamp:
1663 dh_testdir
1664
1665- DEB_CFLAGS_MAINT_APPEND="-static-libgcc" $(MAKE) $(OPTFLAGS) LIB=/lib USE_SYSTEMD=0 USE_RADOS=0
1666+ DEB_CFLAGS_MAINT_APPEND="-static-libgcc" CFLAGS_DISABLE_FEXCEPTIONS=1 $(MAKE) $(OPTFLAGS) LIB=/lib USE_SYSTEMD=0 USE_RADOS=0
1667
1668 # store files for install target
1669 mkdir -p $(CURDIR)/debian/tmp-multipath-udeb/sbin
1670@@ -71,8 +71,11 @@ install-indep:
1671
1672 # initramfs stuff:
1673 install -D -m 755 debian/initramfs/hooks $(INITRAMFS)/hooks/multipath
1674- install -D -m 755 debian/initramfs/local-top \
1675- $(INITRAMFS)/scripts/local-top/multipath
1676+ install -D -m 755 debian/initramfs/kpartx.hook $(CURDIR)/debian/kpartx-boot/usr/share/initramfs-tools/hooks/kpartx
1677+ install -D -m 755 debian/initramfs/local-premount \
1678+ $(INITRAMFS)/scripts/local-premount/multipath
1679+ install -D -m 755 debian/initramfs/local-bottom \
1680+ $(INITRAMFS)/scripts/local-bottom/multipath
1681 install -D -m 755 debian/initramfs/init-top \
1682 $(INITRAMFS)/scripts/init-top/multipath
1683
1684@@ -125,8 +128,8 @@ binary-arch: build install
1685 dh_lintian -a
1686 dh_systemd_enable -pmultipath-tools multipathd.service
1687 dh_installinit -pmultipath-tools
1688- dh_installudev -pkpartx
1689- dh_installudev -pmultipath-tools --name=multipath
1690+ dh_installudev -pkpartx --priority=95
1691+ dh_installudev -pmultipath-tools --name=dm-mpath-lvm --priority=56
1692 dh_link -a lib/systemd/system/multipathd.service \
1693 lib/systemd/system/multipath-tools.service
1694 dh_systemd_start -pmultipath-tools multipathd.service
1695diff --git a/debian/tests/control b/debian/tests/control
1696new file mode 100644
1697index 0000000..daa9f7c
1698--- /dev/null
1699+++ b/debian/tests/control
1700@@ -0,0 +1,8 @@
1701+
1702+Tests: kpartx-file-loopback
1703+Depends: kpartx, qemu-utils, gdisk
1704+Restrictions: needs-root, isolation-machine
1705+
1706+Tests: tgtbasedmpaths
1707+Depends: multipath-tools, tgt, open-iscsi, fio, lsscsi
1708+Restrictions: needs-root isolation-machine allow-stderr
1709diff --git a/debian/tests/kpartx-file-loopback b/debian/tests/kpartx-file-loopback
1710new file mode 100755
1711index 0000000..9f21cf9
1712--- /dev/null
1713+++ b/debian/tests/kpartx-file-loopback
1714@@ -0,0 +1,51 @@
1715+#!/bin/sh
1716+# autopkgtest check: Try to loopback-mount a disk image.
1717+# (C) 2016 Canonical Ltd.
1718+# Author: Mathieu Trudel-Lapierre <mathieu-tl@ubuntu.com>
1719+
1720+set -e
1721+
1722+WORKDIR=$(mktemp -d)
1723+trap "rm -rf $WORKDIR" 0 INT QUIT ABRT PIPE TERM
1724+cd $WORKDIR
1725+
1726+DATAFILE=foo.img
1727+qemu-img create "$DATAFILE" 20M
1728+sgdisk -n 1 "$DATAFILE"
1729+kpartx -asv "$DATAFILE"
1730+udevadm settle
1731+loopdev=$(kpartx -lv "$DATAFILE" | awk '{ print $5; }')
1732+if losetup "$loopdev" 2>/dev/null | grep -qc "$loopdev"; then
1733+ echo "standard_filename: OK"
1734+ kpartx -dsv "$DATAFILE"
1735+ losetup
1736+ dmsetup ls --tree -o blkdevname
1737+ (losetup -j "$DATAFILE" | grep -qc $loopdev ) \
1738+ && ( echo "standard_filename_cleanup: FAIL"; exit 4 )
1739+ echo "standard_filename_cleanup: OK"
1740+else
1741+ echo "standard_filename: FAIL"
1742+ echo "standard_filename_cleanup: ERROR"
1743+ exit 6
1744+fi
1745+
1746+DATAFILE="fou du FaFa.img"
1747+qemu-img create "$DATAFILE" 20M
1748+sgdisk -n 1 "$DATAFILE"
1749+kpartx -asv "$DATAFILE"
1750+udevadm settle
1751+loopdev=$(kpartx -lv "$DATAFILE" | awk '{ print $5; }')
1752+if losetup "$loopdev" 2>/dev/null | grep -qc "$loopdev"; then
1753+ echo "filename_with_spaces: OK"
1754+ kpartx -dsv "$DATAFILE"
1755+ losetup
1756+ dmsetup ls --tree -o blkdevname
1757+ (losetup -j "$DATAFILE" | grep -qc $loopdev ) \
1758+ && ( echo "filename_with_spaces_cleanup: FAIL"; exit 4 )
1759+ echo "filename_with_spaces_cleanup: OK"
1760+else
1761+ echo "filename_with_spaces: FAIL"
1762+ echo "filename_with_spaces_cleanup: ERROR"
1763+ exit 6
1764+fi
1765+
1766diff --git a/debian/tests/tgtbasedmpaths b/debian/tests/tgtbasedmpaths
1767new file mode 100755
1768index 0000000..77255a8
1769--- /dev/null
1770+++ b/debian/tests/tgtbasedmpaths
1771@@ -0,0 +1,179 @@
1772+#!/bin/sh
1773+# autopkgtest check: tgt and open-iscsi based mpath operations
1774+# The test is intentionally extra verbose to have rich log and to stress
1775+# some of the code paths in and around multipath on top of the actual IO test.
1776+# (C) 2016 Canonical Ltd.
1777+# Author: Christian Ehrhardt <christian.ehrhardt@canonical.com>
1778+
1779+# Tests the creation and usage of a tgt target and lun on localhost
1780+set -uxe
1781+
1782+targetname="iqn.2016-11.foo.com:target.iscsi"
1783+cwd=$(pwd)
1784+testdir="/mnt/tgtmpathtest"
1785+localhost="127.0.0.1"
1786+portal="${localhost}:3260"
1787+maxpaths=4
1788+backfn="backingfile"
1789+expectwwid="360000000000000000e00000000010001"
1790+testdisk="/dev/disk/by-id/scsi-${expectwwid}"
1791+
1792+# Restart tgtd to make sure modules are all loaded
1793+service tgt restart || echo "Failed to restart tgt" >&2
1794+
1795+# prep SINGLE test file
1796+truncate --size 100M ${backfn}
1797+
1798+# create target
1799+tgtadm --lld iscsi --op new --mode target --tid 1 -T "${targetname}"
1800+# allow all to bind the target
1801+tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL
1802+# set backing file
1803+tgtadm --lld iscsi --op new --mode logicalunit --tid 1 --lun 1 -b "${cwd}/${backfn}"
1804+
1805+# scan for targets (locally)
1806+iscsiadm --mode discovery --type sendtargets --portal ${localhost}
1807+
1808+# login
1809+echo "login #1"
1810+iscsiadm --mode node --targetname "${targetname}" --portal ${portal} --login
1811+# duplicate this session (always 1)
1812+for i in $(seq 2 ${maxpaths})
1813+do
1814+ echo "extra login #${i}"
1815+ iscsiadm --mode session -r 1 --op new
1816+done
1817+
1818+udevadm settle
1819+
1820+# status summary
1821+echo "Status after initial setup"
1822+tgtadm --lld iscsi --mode target --op show
1823+tgtadm --lld iscsi --op show --mode conn --tid 1
1824+iscsiadm --mode session -P 1
1825+lsscsi -liv
1826+multipath -v3 -ll
1827+dmsetup table
1828+
1829+echo "Test WWN should now point to DM"
1830+ls -laF "${testdisk}" | grep dm
1831+
1832+# create FS on the mpathed device
1833+mkfs.ext4 -F "${testdisk}"
1834+udevadm settle
1835+sleep 3s
1836+mkdir -p ${testdir}
1837+mount "${testdisk}" ${testdir}
1838+
1839+# based on /usr/share/doc/fio/examples/surface-scan.fio
1840+cat << EOF > path-change-prep.fio
1841+; writes 512 byte verification blocks until the disk is full,
1842+; then verifies written data
1843+[global]
1844+directory=${testdir}
1845+thread=1
1846+bs=64k
1847+direct=1
1848+ioengine=sync
1849+verify=meta
1850+verify_pattern=0xaa555aa5
1851+verify_interval=512
1852+
1853+[write-phase]
1854+filename=datafile.tmp ; or use a full disk, for example /dev/sda
1855+rw=write
1856+fill_device=1
1857+do_verify=0
1858+EOF
1859+
1860+cat << EOF > path-change-check.fio
1861+; verifies written data
1862+[global]
1863+directory=${testdir}
1864+thread=1
1865+bs=64k
1866+direct=1
1867+ioengine=sync
1868+verify=meta
1869+verify_pattern=0xaa555aa5
1870+verify_interval=512
1871+
1872+[verify-phase]
1873+stonewall
1874+create_serialize=0
1875+filename=datafile.tmp
1876+rw=read
1877+do_verify=1
1878+runtime=80
1879+time_based
1880+EOF
1881+
1882+# IO Bench with verify
1883+# prep files
1884+fio path-change-prep.fio
1885+
1886+# while verify is running mess with the paths
1887+# Note - we run in a clean env, so we just assume each new session is an increment
1888+# Even with other multipath/scsi devices on the system this is true, jutst no
1889+# other iscsi logins are allowed - since the test runs under isolation-machine
1890+# that should be safe.
1891+# That way we can directly call IDs without huge logic on the session IDs
1892+echo "Starting the path changes in background"
1893+(
1894+ sleep 10s
1895+ echo "UN-plug path 1"
1896+ iscsiadm --mode session -r 1 -u
1897+ iscsiadm --mode session
1898+ sleep 10s
1899+ echo "UN-plug path 2"
1900+ iscsiadm --mode session -r 2 -u
1901+ iscsiadm --mode session
1902+ sleep 10s
1903+ echo "UN-plug path 3"
1904+ iscsiadm --mode session -r 3 -u
1905+ iscsiadm --mode session
1906+ sleep 10s
1907+ echo "RE-plug 2 path2 5/6/7/8"
1908+ iscsiadm --mode session -r 4 --op new
1909+ iscsiadm --mode session -r 4 --op new
1910+ iscsiadm --mode session -r 4 --op new
1911+ iscsiadm --mode session -r 4 --op new
1912+ iscsiadm --mode session
1913+ sleep 10s
1914+ echo "UN-plug path 4/7/8"
1915+ iscsiadm --mode session -r 4 -u
1916+ iscsiadm --mode session -r 7 -u
1917+ iscsiadm --mode session -r 8 -u
1918+ iscsiadm --mode session
1919+ sleep 10s
1920+) &
1921+
1922+# test I/O with verification of actual content
1923+# on any I/O error or verification of read data it would fail
1924+fio path-change-check.fio
1925+
1926+echo "IO-Test with changing paths - OK"
1927+
1928+umount "${testdisk}"
1929+
1930+# report stats - might be useful if checked across various tests that misbehave
1931+echo "Final stats"
1932+iscsiadm --mode session --stats
1933+journalctl --no-pager -u multipathd
1934+
1935+echo "Check final path status"
1936+multipath -ll
1937+# ensure we have one active and one running path
1938+diskc=$(multipath -ll | grep --count 'status=')
1939+diska=$(multipath -ll | grep --count 'status=active')
1940+diske=$(multipath -ll | grep --count 'status=enabled')
1941+if [ "${diskc}" -ne "2" -o "${diska}" -ne "1" -o "${diske}" -ne "1" ]; then
1942+ echo "Error: Not the expected count of active/enabled disks"
1943+ exit 1
1944+else
1945+ echo "OK"
1946+fi
1947+
1948+# logout and target delete should work even after all of this
1949+iscsiadm --mode node --targetname "${targetname}" --portal "${portal}" --logout
1950+tgtadm --lld iscsi --op delete --mode logicalunit --tid 1 --lun 1

Subscribers

People subscribed via source and target branches