Package: release.debian.org User: release.debian....@packages.debian.org Usertags: pu Tags: jessie Severity: normal X-Debbugs-Cc: pkg-iscsi-maintain...@lists.alioth.debian.org, k...@debian.org
Dear release team, (Cc'ing KiBi because this affects d-i/udebs.) I'd like to propose an update of open-iscsi for the next point release. It fixes the following two bugs: - https://bugs.debian.org/834830 (Severity: serious) This was reported on debian-user recently: after an installation on an iSCSI device, open-iscsi-udeb contains a hook to copy /etc/iscsi from the d-i environment over to the system. But it doesn't regenerate the initramfs afterwards - and because the daemon was never started in the installed system, the initiatorname.iscsi file would not contain a valid initiator name. Basically, this rendered a freshly installed system on iSCSI unbootable. sid hasn't been affected for a while, since we moved the generation logic from daemon startup to postinst. However, that change is not trivial, and the simpler fix is to simply regenerate the initramfs after copying the configuration to the system. In order to not have code in Jessie that's not also in sid, I've added the initramfs regeneration to the package in sid anyway. [1] (Even though it's not necessary there.) I've tested the udeb by starting an 8.5 installer, and installing the updated udeb via wget + udpkg and can confirm that it now works as expected. - https://bugs.debian.org/833917 (Severity: important) This was also reported on debian-user recently. There's a race condition at startup: while the current init script of open-iscsi does wait for the iSCSI disks themselves to appear via udevadm settle, the kernel scans disks for partitions asynchronously, which can lead to LVs on partitions not being activated. The proper fix for that will be to switch to an event-based startup; in order to support that in combination with LVM one needs lvmetad though - which doesn't work in Jessie. (See #774082.) The simplest workaround is to just wait a second after iSCSI session login. This is not ideal, but the least-invasive fix to improve the experience for Jessie users. I've also applied this workaround to the package in sid [2], because the event-based logic isn't complete there yet. In sid we already had a similar workaround when multipath was installed, waiting 3s. (multipath is even more racy.) I've taken the liberty in backporting that fix to Jessie as well. I've tested the resulting package on a Jessie system. Source debdiff against the current version in Jessie is attached. Thanks for considering, Christian [1] http://sources.debian.net/src/open-iscsi/2.0.873%2Bgit1.4c1f2d90-2/debian/open-iscsi-udeb.finish-install/#L15 [2] http://sources.debian.net/src/open-iscsi/2.0.873%2Bgit1.4c1f2d90-2/debian/extra/activate-storage.sh/#L58
diff -Nru open-iscsi-2.0.873+git0.3b4b4500/debian/changelog open-iscsi-2.0.873+git0.3b4b4500/debian/changelog --- open-iscsi-2.0.873+git0.3b4b4500/debian/changelog 2015-05-24 10:48:15.000000000 +0200 +++ open-iscsi-2.0.873+git0.3b4b4500/debian/changelog 2016-08-20 11:14:44.000000000 +0200 @@ -1,3 +1,14 @@ +open-iscsi (2.0.873+git0.3b4b4500-8+deb8u2) jessie; urgency=medium + + * [6d8d26d] init script: wait a bit after iSCSI devices have appeared. + This works around a race condition in which dependent devices can + appear only after the initial udev settle has returned. + (Closes: #833917) + * [8a8a870] open-iscsi-udeb: update initramfs after copying + configuration to target system. (Closes: #834830) + + -- Christian Seiler <christ...@iwakd.de> Sat, 20 Aug 2016 11:14:44 +0200 + open-iscsi (2.0.873+git0.3b4b4500-8+deb8u1) stable; urgency=medium * [725c5c6] Populate udebs in every architecture they are built diff -Nru open-iscsi-2.0.873+git0.3b4b4500/debian/open-iscsi.init open-iscsi-2.0.873+git0.3b4b4500/debian/open-iscsi.init --- open-iscsi-2.0.873+git0.3b4b4500/debian/open-iscsi.init 2015-02-10 14:34:58.000000000 +0100 +++ open-iscsi-2.0.873+git0.3b4b4500/debian/open-iscsi.init 2016-08-20 11:14:44.000000000 +0200 @@ -109,6 +109,20 @@ udevadm settle || true; + # Work around race conditions: while after the above settle + # the disks themselves are guaranteed to be there, the + # kernel will scan partitions asynchronously; and multipathd + # will activate multipath devices only after a short delay + # (while it itself races for a lock with udev). + # See Debian Bug #833917 for details. + if [ -x /sbin/multipath ] ; then + sleep 3 + else + sleep 1 + fi + # Settle again to make sure that dependent devices are now + # available. + udevadm settle || true; # Handle iSCSI LVM devices if [ ! -x "/sbin/vgchange" -a -n "$LVMGROUPS" ]; then diff -Nru open-iscsi-2.0.873+git0.3b4b4500/debian/open-iscsi-udeb.finish-install open-iscsi-2.0.873+git0.3b4b4500/debian/open-iscsi-udeb.finish-install --- open-iscsi-2.0.873+git0.3b4b4500/debian/open-iscsi-udeb.finish-install 2015-05-24 10:46:48.000000000 +0200 +++ open-iscsi-2.0.873+git0.3b4b4500/debian/open-iscsi-udeb.finish-install 2016-08-20 11:14:44.000000000 +0200 @@ -12,4 +12,8 @@ if [ "$got_iscsi" ]; then # Copy the configuration to the target... cp -a /etc/iscsi /target/etc/ + if [ -x /target/usr/sbin/update-initramfs ] ; then + echo "iSCSI detected, refreshing initramfs" + /bin/in-target update-initramfs -k all -u + fi fi