Activity log for bug #2035098

Date Who What changed Old value New value Message
2023-09-11 12:44:22 Mitchell Dzurick bug added bug
2023-09-19 20:35:02 Andreas Hasenack description This is present in both (lunar) 0.8.8-1ubuntu2.1 (jammy) 0.8.8-1ubuntu1.22.04.2 These versions recently removed dh_installinit which provided this handy line of code: in .prerm: if [ -z "${DPKG_ROOT:-}" ] && [ "$1" = remove ] && [ -x "/etc/init.d/multipath-tools" ] ; then invoke-rc.d multipath-tools stop || exit 1 fi if [ -z "${DPKG_ROOT:-}" ] && [ -d /run/systemd/system ]; then deb-systemd-invoke stop 'multipathd.socket' >/dev/null || true fi So, when transitioning from a package that has dh_installinit and these new versions only using systemd, only the socket was stopped, and not the service. This caused the old service to persist after an upgrade. This is not an issue if the user has needrestart and sees the interactive prompt, but that is not something that should be relied on. The fix is relatively simple, add logic in postinst to restart multipathd.service when upgrading. This is present in both (lunar-proposed) 0.8.8-1ubuntu2.1 (jammy-proposed) 0.8.8-1ubuntu1.22.04.2 These versions recently removed dh_installinit which provided this handy line of code: in .prerm: if [ -z "${DPKG_ROOT:-}" ] && [ "$1" = remove ] && [ -x "/etc/init.d/multipath-tools" ] ; then     invoke-rc.d multipath-tools stop || exit 1 fi if [ -z "${DPKG_ROOT:-}" ] && [ -d /run/systemd/system ]; then     deb-systemd-invoke stop 'multipathd.socket' >/dev/null || true fi So, when transitioning from a package that has dh_installinit and these new versions only using systemd, only the socket was stopped, and not the service. This caused the old service to persist after an upgrade. This is not an issue if the user has needrestart and sees the interactive prompt, but that is not something that should be relied on. The fix is relatively simple, add logic in postinst to restart multipathd.service when upgrading.
2023-09-19 20:35:26 Andreas Hasenack bug added subscriber Andreas Hasenack
2023-09-20 09:25:48 Sergio Durigan Junior bug added subscriber Sergio Durigan Junior
2023-09-20 12:52:44 Mitchell Dzurick description This is present in both (lunar-proposed) 0.8.8-1ubuntu2.1 (jammy-proposed) 0.8.8-1ubuntu1.22.04.2 These versions recently removed dh_installinit which provided this handy line of code: in .prerm: if [ -z "${DPKG_ROOT:-}" ] && [ "$1" = remove ] && [ -x "/etc/init.d/multipath-tools" ] ; then     invoke-rc.d multipath-tools stop || exit 1 fi if [ -z "${DPKG_ROOT:-}" ] && [ -d /run/systemd/system ]; then     deb-systemd-invoke stop 'multipathd.socket' >/dev/null || true fi So, when transitioning from a package that has dh_installinit and these new versions only using systemd, only the socket was stopped, and not the service. This caused the old service to persist after an upgrade. This is not an issue if the user has needrestart and sees the interactive prompt, but that is not something that should be relied on. The fix is relatively simple, add logic in postinst to restart multipathd.service when upgrading. This bug is blocking the phasing of the [lunar|jammy]-proposed multipath-tools package, so it is important that when uploaded, the changes from the proposed pocket are included. While testing the fix for this issue, a new bug was noticed, that on certain operations (upgrade/fresh install) of multipath-tools, the multipathd.socket would be in an inactive state. This is not addressed in this bug, because it is present in Mantic and a proper solution is being found for that and will potentially be SRU'd later. With that said, the current fix is manually restarting the service/socket in the correct order, so on upgrade to the new package that fixes this bug, the socket will be active, as shown in the Test Plan. New bug found - https://bugs.launchpad.net/ubuntu/+source/multipath-tools/+bug/2034471 [ Impact ] Impacted versions are in proposed (lunar-proposed) 0.8.8-1ubuntu2.1 (jammy-proposed) 0.8.8-1ubuntu1.22.04.2 In the proposed package, the removal of init scripts was done. This caused an issue on upgrade because the old .prerm used invoke-rc.d to stop multipathd.service and then the service is started in the .postinst. This causes an issue because multipathd.service was never stopped, so when .postinst attempts to start the service, the service is not reloaded, as it is already running. Thus, on upgrade from the versions with the init script, the multipathd.service is not restarted, and the older version persists until a reboot or manual restart happens. [ Test Plan ] The current dep8 test is sufficient for testing functionality of multipath-tools, so the testing is targetting the upgrade behavior and additional scrutiny on multipath-tools-boot. multipath-tools-boot is explcitly included in this testing because it is not covered in dep8 and regressions in this package can cause systems to not boot, which makes it important to test properly. Tests are written for lunar, but will be the similar for Jammy. Just change the lxc image and the version numbers 1) On upgrade $ lxc launch ubuntu:lunar l --vm $ lxc shell l # dpkg -l multipath-tools | grep multipath-tools | awk '{print $3}' 0.8.8-1ubuntu2 # pidof multipathd <some number> # apt install -y multipath-tools=0.8.8-1ubuntu2.2 # pidof multipathd3 <should be a different number then before> # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled) Active: active (running) since Wed 2023-09-20 12:40:09 UTC; 17s ago -- ● multipathd.socket - multipathd control socket Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled) Active: active (running) since Wed 2023-09-20 12:40:09 UTC; 17s ago 2) Installing a fresh package $ lxc launch ubuntu:lunar l --vm $ lxc shell l # apt purge -y multipath-tools # apt update -y # apt install -y multipath-tools=0.8.8-1ubuntu2.2 # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled) Active: active (running) since Wed 2023-09-20 12:41:27 UTC; 3s ago -- ○ multipathd.socket - multipathd control socket Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled) Active: inactive (dead) 3) Upgrading to future packages This requires making a test package > 0.8.8-1ubuntu2.2 $ lxc launch ubuntu:lunar l --vm $ lxc shell l # dpkg -l multipath-tools | grep multipath-tools | awk '{print $3}' 0.8.8-1ubuntu2.2 # pidof multipathd <some number> # apt install -y multipath-tools=0.8.8-1ubuntu2.3 # pidof multipathd3 <should be a different number then before> # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled) Active: active (running) since Wed 2023-09-20 12:42:01 UTC; 3s ago -- ○ multipathd.socket - multipathd control socket Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled) Active: inactive (dead) 4) Also tested is multipath-tools-boot manually as a sanity check that booting still occurs. This is done manually like so: $ download latest lunar-live-server-amd64.iso $ fallocate -l 20G image.img $ kvm -m 2048 -boot d -cdrom ./lunar-live-server-amd64.iso -device virtio-scsi-pci,id=scsi -drive file=image.img,if=none,id=sda,format=raw,file.locking=off -device scsi-hd,drive=sda,serial=0001 -drive if=none,id=sdb,file=image.img,format=raw,file.locking=off -device scsi-hd,drive=sdb,serial=0001 Install like regular, reboot. Stop reboot process. $ kvm -m 2048 -boot c -cdrom ./lunar-live-server-amd64.iso -device virtio-scsi-pci,id=scsi -drive file=image.img,if=none,id=sda,format=raw,file.locking=off -device scsi-hd,drive=sda,serial=0001 -drive if=none,id=sdb,file=image.img,format=raw,file.locking=off -device scsi-hd,drive=sdb,serial=0001 After changing to -boot c, ensure you can login and check that the root partition is using the multipathd devices with lsblk and multipath -l [ Where Problems could Occur ] * This stops & starts both the service/socket. The user could want to have just the socket active, or just the service active * User could want the multipathd service/socket inactive on purpose, upgrading will activate both of them
2023-09-20 13:12:40 Mitchell Dzurick merge proposal linked https://code.launchpad.net/~mitchdz/ubuntu/+source/multipath-tools/+git/multipath-tools/+merge/451738
2023-09-20 13:12:54 Mitchell Dzurick multipath-tools (Ubuntu): assignee Mitchell Dzurick (mitchdz)
2023-09-20 15:32:59 Mitchell Dzurick merge proposal linked https://code.launchpad.net/~mitchdz/ubuntu/+source/multipath-tools/+git/multipath-tools/+merge/451745
2023-09-21 21:18:15 Mitchell Dzurick tags server-todo
2023-10-06 17:41:43 Mitchell Dzurick description This bug is blocking the phasing of the [lunar|jammy]-proposed multipath-tools package, so it is important that when uploaded, the changes from the proposed pocket are included. While testing the fix for this issue, a new bug was noticed, that on certain operations (upgrade/fresh install) of multipath-tools, the multipathd.socket would be in an inactive state. This is not addressed in this bug, because it is present in Mantic and a proper solution is being found for that and will potentially be SRU'd later. With that said, the current fix is manually restarting the service/socket in the correct order, so on upgrade to the new package that fixes this bug, the socket will be active, as shown in the Test Plan. New bug found - https://bugs.launchpad.net/ubuntu/+source/multipath-tools/+bug/2034471 [ Impact ] Impacted versions are in proposed (lunar-proposed) 0.8.8-1ubuntu2.1 (jammy-proposed) 0.8.8-1ubuntu1.22.04.2 In the proposed package, the removal of init scripts was done. This caused an issue on upgrade because the old .prerm used invoke-rc.d to stop multipathd.service and then the service is started in the .postinst. This causes an issue because multipathd.service was never stopped, so when .postinst attempts to start the service, the service is not reloaded, as it is already running. Thus, on upgrade from the versions with the init script, the multipathd.service is not restarted, and the older version persists until a reboot or manual restart happens. [ Test Plan ] The current dep8 test is sufficient for testing functionality of multipath-tools, so the testing is targetting the upgrade behavior and additional scrutiny on multipath-tools-boot. multipath-tools-boot is explcitly included in this testing because it is not covered in dep8 and regressions in this package can cause systems to not boot, which makes it important to test properly. Tests are written for lunar, but will be the similar for Jammy. Just change the lxc image and the version numbers 1) On upgrade $ lxc launch ubuntu:lunar l --vm $ lxc shell l # dpkg -l multipath-tools | grep multipath-tools | awk '{print $3}' 0.8.8-1ubuntu2 # pidof multipathd <some number> # apt install -y multipath-tools=0.8.8-1ubuntu2.2 # pidof multipathd3 <should be a different number then before> # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled) Active: active (running) since Wed 2023-09-20 12:40:09 UTC; 17s ago -- ● multipathd.socket - multipathd control socket Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled) Active: active (running) since Wed 2023-09-20 12:40:09 UTC; 17s ago 2) Installing a fresh package $ lxc launch ubuntu:lunar l --vm $ lxc shell l # apt purge -y multipath-tools # apt update -y # apt install -y multipath-tools=0.8.8-1ubuntu2.2 # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled) Active: active (running) since Wed 2023-09-20 12:41:27 UTC; 3s ago -- ○ multipathd.socket - multipathd control socket Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled) Active: inactive (dead) 3) Upgrading to future packages This requires making a test package > 0.8.8-1ubuntu2.2 $ lxc launch ubuntu:lunar l --vm $ lxc shell l # dpkg -l multipath-tools | grep multipath-tools | awk '{print $3}' 0.8.8-1ubuntu2.2 # pidof multipathd <some number> # apt install -y multipath-tools=0.8.8-1ubuntu2.3 # pidof multipathd3 <should be a different number then before> # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled) Active: active (running) since Wed 2023-09-20 12:42:01 UTC; 3s ago -- ○ multipathd.socket - multipathd control socket Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled) Active: inactive (dead) 4) Also tested is multipath-tools-boot manually as a sanity check that booting still occurs. This is done manually like so: $ download latest lunar-live-server-amd64.iso $ fallocate -l 20G image.img $ kvm -m 2048 -boot d -cdrom ./lunar-live-server-amd64.iso -device virtio-scsi-pci,id=scsi -drive file=image.img,if=none,id=sda,format=raw,file.locking=off -device scsi-hd,drive=sda,serial=0001 -drive if=none,id=sdb,file=image.img,format=raw,file.locking=off -device scsi-hd,drive=sdb,serial=0001 Install like regular, reboot. Stop reboot process. $ kvm -m 2048 -boot c -cdrom ./lunar-live-server-amd64.iso -device virtio-scsi-pci,id=scsi -drive file=image.img,if=none,id=sda,format=raw,file.locking=off -device scsi-hd,drive=sda,serial=0001 -drive if=none,id=sdb,file=image.img,format=raw,file.locking=off -device scsi-hd,drive=sdb,serial=0001 After changing to -boot c, ensure you can login and check that the root partition is using the multipathd devices with lsblk and multipath -l [ Where Problems could Occur ] * This stops & starts both the service/socket. The user could want to have just the socket active, or just the service active * User could want the multipathd service/socket inactive on purpose, upgrading will activate both of them [ Important info regarding this bug ] This bug is blocking the phasing of the [lunar|jammy]-proposed multipath-tools package, so it is important that when uploaded, the changes from the proposed pocket are included. While testing the fix for this issue, a new bug was noticed, that on certain operations (upgrade/fresh install) of multipath-tools, the multipathd.socket would be in an inactive state. This is not addressed in this bug, because it is present in Mantic and a proper solution is being found for that and will potentially be SRU'd later. New bug found - https://bugs.launchpad.net/ubuntu/+source/multipath-tools/+bug/2034471 [ Fix ] Putting the fix section near the top to highlight that the solution will generate a new warning when upgrading. The warning looks like this: ``` Warning: The unit file, source configuration file or drop-ins of multipathd.service changed on disk. Run 'systemctl daemon-reload' to reload units. ``` This is because the fix runs `deb-systemd-invoke` after changing unit files and before running `systemctl daemon-reload`. This is intentional so that way `systemctl daemon-reload` is not ran twice, and the code is still functional, where the service gets restarted as expected. [ Impact ] Impacted versions are in proposed (lunar-proposed) 0.8.8-1ubuntu2.1 (jammy-proposed) 0.8.8-1ubuntu1.22.04.2 In the proposed package, the removal of init scripts was done. This caused an issue on upgrade because the old .prerm used invoke-rc.d to stop multipathd.service and then the service is started in the .postinst. This causes an issue because multipathd.service was never stopped, so when .postinst attempts to start the service, the service is not reloaded, as it is already running. Thus, on upgrade from the versions with the init script, the multipathd.service is not restarted, and the older version persists until a reboot or manual restart happens. [ Test Plan ] The current dep8 test is sufficient for testing functionality of multipath-tools, so the testing is targetting the upgrade behavior and additional scrutiny on multipath-tools-boot. multipath-tools-boot is explcitly included in this testing because it is not covered in dep8 and regressions in this package can cause systems to not boot, which makes it important to test properly. Tests are written for lunar, but will be the similar for Jammy. Just change the lxc image and the version numbers 1) On upgrade $ lxc launch ubuntu:lunar l --vm $ lxc shell l # dpkg -l multipath-tools | grep multipath-tools | awk '{print $3}' 0.8.8-1ubuntu2 # pidof multipathd <some number> # apt install -y multipath-tools=0.8.8-1ubuntu2.2 # pidof multipathd3 <should be a different number then before> # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller      Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:40:09 UTC; 17s ago -- ● multipathd.socket - multipathd control socket      Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:40:09 UTC; 17s ago 2) Installing a fresh package $ lxc launch ubuntu:lunar l --vm $ lxc shell l # apt purge -y multipath-tools # apt update -y # apt install -y multipath-tools=0.8.8-1ubuntu2.2 # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller      Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:41:27 UTC; 3s ago -- ○ multipathd.socket - multipathd control socket      Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled)      Active: inactive (dead) 3) Upgrading to future packages This requires making a test package > 0.8.8-1ubuntu2.2 $ lxc launch ubuntu:lunar l --vm $ lxc shell l # dpkg -l multipath-tools | grep multipath-tools | awk '{print $3}' 0.8.8-1ubuntu2.2 # pidof multipathd <some number> # apt install -y multipath-tools=0.8.8-1ubuntu2.3 # pidof multipathd3 <should be a different number then before> # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller      Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:42:01 UTC; 3s ago -- ○ multipathd.socket - multipathd control socket      Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled)      Active: inactive (dead) 4) Also tested is multipath-tools-boot manually as a sanity check that booting still occurs. This is done manually like so: $ download latest lunar-live-server-amd64.iso $ fallocate -l 20G image.img $ kvm -m 2048 -boot d -cdrom ./lunar-live-server-amd64.iso -device virtio-scsi-pci,id=scsi -drive file=image.img,if=none,id=sda,format=raw,file.locking=off -device scsi-hd,drive=sda,serial=0001 -drive if=none,id=sdb,file=image.img,format=raw,file.locking=off -device scsi-hd,drive=sdb,serial=0001 Install like regular, reboot. Stop reboot process. $ kvm -m 2048 -boot c -cdrom ./lunar-live-server-amd64.iso -device virtio-scsi-pci,id=scsi -drive file=image.img,if=none,id=sda,format=raw,file.locking=off -device scsi-hd,drive=sda,serial=0001 -drive if=none,id=sdb,file=image.img,format=raw,file.locking=off -device scsi-hd,drive=sdb,serial=0001 After changing to -boot c, ensure you can login and check that the root partition is using the multipathd devices with lsblk and multipath -l [ Where Problems could Occur ] * This stops & starts both the service/socket. The user could want to have just the socket active, or just the service active * User could want the multipathd service/socket inactive on purpose, upgrading will activate both of them
2023-10-06 18:12:46 Andreas Hasenack description [ Important info regarding this bug ] This bug is blocking the phasing of the [lunar|jammy]-proposed multipath-tools package, so it is important that when uploaded, the changes from the proposed pocket are included. While testing the fix for this issue, a new bug was noticed, that on certain operations (upgrade/fresh install) of multipath-tools, the multipathd.socket would be in an inactive state. This is not addressed in this bug, because it is present in Mantic and a proper solution is being found for that and will potentially be SRU'd later. New bug found - https://bugs.launchpad.net/ubuntu/+source/multipath-tools/+bug/2034471 [ Fix ] Putting the fix section near the top to highlight that the solution will generate a new warning when upgrading. The warning looks like this: ``` Warning: The unit file, source configuration file or drop-ins of multipathd.service changed on disk. Run 'systemctl daemon-reload' to reload units. ``` This is because the fix runs `deb-systemd-invoke` after changing unit files and before running `systemctl daemon-reload`. This is intentional so that way `systemctl daemon-reload` is not ran twice, and the code is still functional, where the service gets restarted as expected. [ Impact ] Impacted versions are in proposed (lunar-proposed) 0.8.8-1ubuntu2.1 (jammy-proposed) 0.8.8-1ubuntu1.22.04.2 In the proposed package, the removal of init scripts was done. This caused an issue on upgrade because the old .prerm used invoke-rc.d to stop multipathd.service and then the service is started in the .postinst. This causes an issue because multipathd.service was never stopped, so when .postinst attempts to start the service, the service is not reloaded, as it is already running. Thus, on upgrade from the versions with the init script, the multipathd.service is not restarted, and the older version persists until a reboot or manual restart happens. [ Test Plan ] The current dep8 test is sufficient for testing functionality of multipath-tools, so the testing is targetting the upgrade behavior and additional scrutiny on multipath-tools-boot. multipath-tools-boot is explcitly included in this testing because it is not covered in dep8 and regressions in this package can cause systems to not boot, which makes it important to test properly. Tests are written for lunar, but will be the similar for Jammy. Just change the lxc image and the version numbers 1) On upgrade $ lxc launch ubuntu:lunar l --vm $ lxc shell l # dpkg -l multipath-tools | grep multipath-tools | awk '{print $3}' 0.8.8-1ubuntu2 # pidof multipathd <some number> # apt install -y multipath-tools=0.8.8-1ubuntu2.2 # pidof multipathd3 <should be a different number then before> # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller      Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:40:09 UTC; 17s ago -- ● multipathd.socket - multipathd control socket      Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:40:09 UTC; 17s ago 2) Installing a fresh package $ lxc launch ubuntu:lunar l --vm $ lxc shell l # apt purge -y multipath-tools # apt update -y # apt install -y multipath-tools=0.8.8-1ubuntu2.2 # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller      Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:41:27 UTC; 3s ago -- ○ multipathd.socket - multipathd control socket      Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled)      Active: inactive (dead) 3) Upgrading to future packages This requires making a test package > 0.8.8-1ubuntu2.2 $ lxc launch ubuntu:lunar l --vm $ lxc shell l # dpkg -l multipath-tools | grep multipath-tools | awk '{print $3}' 0.8.8-1ubuntu2.2 # pidof multipathd <some number> # apt install -y multipath-tools=0.8.8-1ubuntu2.3 # pidof multipathd3 <should be a different number then before> # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller      Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:42:01 UTC; 3s ago -- ○ multipathd.socket - multipathd control socket      Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled)      Active: inactive (dead) 4) Also tested is multipath-tools-boot manually as a sanity check that booting still occurs. This is done manually like so: $ download latest lunar-live-server-amd64.iso $ fallocate -l 20G image.img $ kvm -m 2048 -boot d -cdrom ./lunar-live-server-amd64.iso -device virtio-scsi-pci,id=scsi -drive file=image.img,if=none,id=sda,format=raw,file.locking=off -device scsi-hd,drive=sda,serial=0001 -drive if=none,id=sdb,file=image.img,format=raw,file.locking=off -device scsi-hd,drive=sdb,serial=0001 Install like regular, reboot. Stop reboot process. $ kvm -m 2048 -boot c -cdrom ./lunar-live-server-amd64.iso -device virtio-scsi-pci,id=scsi -drive file=image.img,if=none,id=sda,format=raw,file.locking=off -device scsi-hd,drive=sda,serial=0001 -drive if=none,id=sdb,file=image.img,format=raw,file.locking=off -device scsi-hd,drive=sdb,serial=0001 After changing to -boot c, ensure you can login and check that the root partition is using the multipathd devices with lsblk and multipath -l [ Where Problems could Occur ] * This stops & starts both the service/socket. The user could want to have just the socket active, or just the service active * User could want the multipathd service/socket inactive on purpose, upgrading will activate both of them [ Important info regarding this bug ] This bug is blocking the phasing of the [lunar|jammy]-proposed multipath-tools package, so it is important that when uploaded, the changes from the proposed pocket are included. While testing the fix for this issue, a new bug was noticed, that on certain operations (upgrade/fresh install) of multipath-tools, the multipathd.socket would be in an inactive state. This is not addressed in this bug, because it is present in Mantic and a proper solution is being found for that and will potentially be SRU'd later. New bug found - https://bugs.launchpad.net/ubuntu/+source/multipath-tools/+bug/2034471 [ Fix ] Putting the fix section near the top to highlight that the solution will generate a new warning when upgrading. The warning looks like this: ``` Warning: The unit file, source configuration file or drop-ins of multipathd.service changed on  disk. Run 'systemctl daemon-reload' to reload units. ``` This is because the fix runs `deb-systemd-invoke` after changing unit files and before running `systemctl daemon-reload`. This is intentional so that way `systemctl daemon-reload` is not ran twice, and the code is still functional, where the service gets restarted as expected. [ Impact ] Impacted versions are in proposed (lunar-proposed) 0.8.8-1ubuntu2.1 (jammy-proposed) 0.8.8-1ubuntu1.22.04.2 In the proposed package, the removal of init scripts was done. This caused an issue on upgrade because the old .prerm used invoke-rc.d to stop multipathd.service and then the service is started in the .postinst. This causes an issue because multipathd.service was never stopped, so when .postinst attempts to start the service, the service is not reloaded, as it is already running. Thus, on upgrade from the versions with the init script, the multipathd.service is not restarted, and the older version persists until a reboot or manual restart happens. [ Test Plan ] The current dep8 test is sufficient for testing functionality of multipath-tools, so the testing is targetting the upgrade behavior and additional scrutiny on multipath-tools-boot. multipath-tools-boot is explcitly included in this testing because it is not covered in dep8 and regressions in this package can cause systems to not boot, which makes it important to test properly. Tests are written for lunar, but will be the similar for Jammy. Just change the lxc image and the version numbers 1) On upgrade $ lxc launch ubuntu:lunar l --vm $ lxc shell l # dpkg -l multipath-tools | grep multipath-tools | awk '{print $3}' 0.8.8-1ubuntu2 # pidof multipathd <some number> # apt install -y multipath-tools=0.8.8-1ubuntu2.2 # pidof multipathd <should be a different number then before> # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller      Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:40:09 UTC; 17s ago -- ● multipathd.socket - multipathd control socket      Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:40:09 UTC; 17s ago 2) Installing a fresh package $ lxc launch ubuntu:lunar l --vm $ lxc shell l # apt purge -y multipath-tools # apt update -y # apt install -y multipath-tools=0.8.8-1ubuntu2.2 # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller      Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:41:27 UTC; 3s ago -- ○ multipathd.socket - multipathd control socket      Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled)      Active: inactive (dead) 3) Upgrading to future packages This requires making a test package > 0.8.8-1ubuntu2.2 $ lxc launch ubuntu:lunar l --vm $ lxc shell l # dpkg -l multipath-tools | grep multipath-tools | awk '{print $3}' 0.8.8-1ubuntu2.2 # pidof multipathd <some number> # apt install -y multipath-tools=0.8.8-1ubuntu2.3 # pidof multipathd3 <should be a different number then before> # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller      Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:42:01 UTC; 3s ago -- ○ multipathd.socket - multipathd control socket      Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled)      Active: inactive (dead) 4) Also tested is multipath-tools-boot manually as a sanity check that booting still occurs. This is done manually like so: $ download latest lunar-live-server-amd64.iso $ fallocate -l 20G image.img $ kvm -m 2048 -boot d -cdrom ./lunar-live-server-amd64.iso -device virtio-scsi-pci,id=scsi -drive file=image.img,if=none,id=sda,format=raw,file.locking=off -device scsi-hd,drive=sda,serial=0001 -drive if=none,id=sdb,file=image.img,format=raw,file.locking=off -device scsi-hd,drive=sdb,serial=0001 Install like regular, reboot. Stop reboot process. $ kvm -m 2048 -boot c -cdrom ./lunar-live-server-amd64.iso -device virtio-scsi-pci,id=scsi -drive file=image.img,if=none,id=sda,format=raw,file.locking=off -device scsi-hd,drive=sda,serial=0001 -drive if=none,id=sdb,file=image.img,format=raw,file.locking=off -device scsi-hd,drive=sdb,serial=0001 After changing to -boot c, ensure you can login and check that the root partition is using the multipathd devices with lsblk and multipath -l [ Where Problems could Occur ] * This stops & starts both the service/socket. The user could want to have just the socket active, or just the service active * User could want the multipathd service/socket inactive on purpose, upgrading will activate both of them
2023-10-06 18:13:14 Andreas Hasenack description [ Important info regarding this bug ] This bug is blocking the phasing of the [lunar|jammy]-proposed multipath-tools package, so it is important that when uploaded, the changes from the proposed pocket are included. While testing the fix for this issue, a new bug was noticed, that on certain operations (upgrade/fresh install) of multipath-tools, the multipathd.socket would be in an inactive state. This is not addressed in this bug, because it is present in Mantic and a proper solution is being found for that and will potentially be SRU'd later. New bug found - https://bugs.launchpad.net/ubuntu/+source/multipath-tools/+bug/2034471 [ Fix ] Putting the fix section near the top to highlight that the solution will generate a new warning when upgrading. The warning looks like this: ``` Warning: The unit file, source configuration file or drop-ins of multipathd.service changed on  disk. Run 'systemctl daemon-reload' to reload units. ``` This is because the fix runs `deb-systemd-invoke` after changing unit files and before running `systemctl daemon-reload`. This is intentional so that way `systemctl daemon-reload` is not ran twice, and the code is still functional, where the service gets restarted as expected. [ Impact ] Impacted versions are in proposed (lunar-proposed) 0.8.8-1ubuntu2.1 (jammy-proposed) 0.8.8-1ubuntu1.22.04.2 In the proposed package, the removal of init scripts was done. This caused an issue on upgrade because the old .prerm used invoke-rc.d to stop multipathd.service and then the service is started in the .postinst. This causes an issue because multipathd.service was never stopped, so when .postinst attempts to start the service, the service is not reloaded, as it is already running. Thus, on upgrade from the versions with the init script, the multipathd.service is not restarted, and the older version persists until a reboot or manual restart happens. [ Test Plan ] The current dep8 test is sufficient for testing functionality of multipath-tools, so the testing is targetting the upgrade behavior and additional scrutiny on multipath-tools-boot. multipath-tools-boot is explcitly included in this testing because it is not covered in dep8 and regressions in this package can cause systems to not boot, which makes it important to test properly. Tests are written for lunar, but will be the similar for Jammy. Just change the lxc image and the version numbers 1) On upgrade $ lxc launch ubuntu:lunar l --vm $ lxc shell l # dpkg -l multipath-tools | grep multipath-tools | awk '{print $3}' 0.8.8-1ubuntu2 # pidof multipathd <some number> # apt install -y multipath-tools=0.8.8-1ubuntu2.2 # pidof multipathd <should be a different number then before> # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller      Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:40:09 UTC; 17s ago -- ● multipathd.socket - multipathd control socket      Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:40:09 UTC; 17s ago 2) Installing a fresh package $ lxc launch ubuntu:lunar l --vm $ lxc shell l # apt purge -y multipath-tools # apt update -y # apt install -y multipath-tools=0.8.8-1ubuntu2.2 # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller      Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:41:27 UTC; 3s ago -- ○ multipathd.socket - multipathd control socket      Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled)      Active: inactive (dead) 3) Upgrading to future packages This requires making a test package > 0.8.8-1ubuntu2.2 $ lxc launch ubuntu:lunar l --vm $ lxc shell l # dpkg -l multipath-tools | grep multipath-tools | awk '{print $3}' 0.8.8-1ubuntu2.2 # pidof multipathd <some number> # apt install -y multipath-tools=0.8.8-1ubuntu2.3 # pidof multipathd3 <should be a different number then before> # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller      Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:42:01 UTC; 3s ago -- ○ multipathd.socket - multipathd control socket      Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled)      Active: inactive (dead) 4) Also tested is multipath-tools-boot manually as a sanity check that booting still occurs. This is done manually like so: $ download latest lunar-live-server-amd64.iso $ fallocate -l 20G image.img $ kvm -m 2048 -boot d -cdrom ./lunar-live-server-amd64.iso -device virtio-scsi-pci,id=scsi -drive file=image.img,if=none,id=sda,format=raw,file.locking=off -device scsi-hd,drive=sda,serial=0001 -drive if=none,id=sdb,file=image.img,format=raw,file.locking=off -device scsi-hd,drive=sdb,serial=0001 Install like regular, reboot. Stop reboot process. $ kvm -m 2048 -boot c -cdrom ./lunar-live-server-amd64.iso -device virtio-scsi-pci,id=scsi -drive file=image.img,if=none,id=sda,format=raw,file.locking=off -device scsi-hd,drive=sda,serial=0001 -drive if=none,id=sdb,file=image.img,format=raw,file.locking=off -device scsi-hd,drive=sdb,serial=0001 After changing to -boot c, ensure you can login and check that the root partition is using the multipathd devices with lsblk and multipath -l [ Where Problems could Occur ] * This stops & starts both the service/socket. The user could want to have just the socket active, or just the service active * User could want the multipathd service/socket inactive on purpose, upgrading will activate both of them [ Important info regarding this bug ] This bug is blocking the phasing of the [lunar|jammy]-proposed multipath-tools package, so it is important that when uploaded, the changes from the proposed pocket are included. While testing the fix for this issue, a new bug was noticed, that on certain operations (upgrade/fresh install) of multipath-tools, the multipathd.socket would be in an inactive state. This is not addressed in this bug, because it is present in Mantic and a proper solution is being found for that and will potentially be SRU'd later. New bug found - https://bugs.launchpad.net/ubuntu/+source/multipath-tools/+bug/2034471 [ Fix ] Putting the fix section near the top to highlight that the solution will generate a new warning when upgrading. The warning looks like this: ``` Warning: The unit file, source configuration file or drop-ins of multipathd.service changed on  disk. Run 'systemctl daemon-reload' to reload units. ``` This is because the fix runs `deb-systemd-invoke` after changing unit files and before running `systemctl daemon-reload`. This is intentional so that way `systemctl daemon-reload` is not ran twice, and the code is still functional, where the service gets restarted as expected. [ Impact ] Impacted versions are in proposed (lunar-proposed) 0.8.8-1ubuntu2.1 (jammy-proposed) 0.8.8-1ubuntu1.22.04.2 In the proposed package, the removal of init scripts was done. This caused an issue on upgrade because the old .prerm used invoke-rc.d to stop multipathd.service and then the service is started in the .postinst. This causes an issue because multipathd.service was never stopped, so when .postinst attempts to start the service, the service is not reloaded, as it is already running. Thus, on upgrade from the versions with the init script, the multipathd.service is not restarted, and the older version persists until a reboot or manual restart happens. [ Test Plan ] The current dep8 test is sufficient for testing functionality of multipath-tools, so the testing is targetting the upgrade behavior and additional scrutiny on multipath-tools-boot. multipath-tools-boot is explcitly included in this testing because it is not covered in dep8 and regressions in this package can cause systems to not boot, which makes it important to test properly. Tests are written for lunar, but will be the similar for Jammy. Just change the lxc image and the version numbers 1) On upgrade $ lxc launch ubuntu:lunar l --vm $ lxc shell l # dpkg -l multipath-tools | grep multipath-tools | awk '{print $3}' 0.8.8-1ubuntu2 # pidof multipathd <some number> # apt install -y multipath-tools=0.8.8-1ubuntu2.2 # pidof multipathd <should be a different number than before> # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller      Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:40:09 UTC; 17s ago -- ● multipathd.socket - multipathd control socket      Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:40:09 UTC; 17s ago 2) Installing a fresh package $ lxc launch ubuntu:lunar l --vm $ lxc shell l # apt purge -y multipath-tools # apt update -y # apt install -y multipath-tools=0.8.8-1ubuntu2.2 # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller      Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:41:27 UTC; 3s ago -- ○ multipathd.socket - multipathd control socket      Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled)      Active: inactive (dead) 3) Upgrading to future packages This requires making a test package > 0.8.8-1ubuntu2.2 $ lxc launch ubuntu:lunar l --vm $ lxc shell l # dpkg -l multipath-tools | grep multipath-tools | awk '{print $3}' 0.8.8-1ubuntu2.2 # pidof multipathd <some number> # apt install -y multipath-tools=0.8.8-1ubuntu2.3 # pidof multipathd3 <should be a different number then before> # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller      Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:42:01 UTC; 3s ago -- ○ multipathd.socket - multipathd control socket      Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled)      Active: inactive (dead) 4) Also tested is multipath-tools-boot manually as a sanity check that booting still occurs. This is done manually like so: $ download latest lunar-live-server-amd64.iso $ fallocate -l 20G image.img $ kvm -m 2048 -boot d -cdrom ./lunar-live-server-amd64.iso -device virtio-scsi-pci,id=scsi -drive file=image.img,if=none,id=sda,format=raw,file.locking=off -device scsi-hd,drive=sda,serial=0001 -drive if=none,id=sdb,file=image.img,format=raw,file.locking=off -device scsi-hd,drive=sdb,serial=0001 Install like regular, reboot. Stop reboot process. $ kvm -m 2048 -boot c -cdrom ./lunar-live-server-amd64.iso -device virtio-scsi-pci,id=scsi -drive file=image.img,if=none,id=sda,format=raw,file.locking=off -device scsi-hd,drive=sda,serial=0001 -drive if=none,id=sdb,file=image.img,format=raw,file.locking=off -device scsi-hd,drive=sdb,serial=0001 After changing to -boot c, ensure you can login and check that the root partition is using the multipathd devices with lsblk and multipath -l [ Where Problems could Occur ] * This stops & starts both the service/socket. The user could want to have just the socket active, or just the service active * User could want the multipathd service/socket inactive on purpose, upgrading will activate both of them
2023-10-06 18:30:35 Andreas Hasenack description [ Important info regarding this bug ] This bug is blocking the phasing of the [lunar|jammy]-proposed multipath-tools package, so it is important that when uploaded, the changes from the proposed pocket are included. While testing the fix for this issue, a new bug was noticed, that on certain operations (upgrade/fresh install) of multipath-tools, the multipathd.socket would be in an inactive state. This is not addressed in this bug, because it is present in Mantic and a proper solution is being found for that and will potentially be SRU'd later. New bug found - https://bugs.launchpad.net/ubuntu/+source/multipath-tools/+bug/2034471 [ Fix ] Putting the fix section near the top to highlight that the solution will generate a new warning when upgrading. The warning looks like this: ``` Warning: The unit file, source configuration file or drop-ins of multipathd.service changed on  disk. Run 'systemctl daemon-reload' to reload units. ``` This is because the fix runs `deb-systemd-invoke` after changing unit files and before running `systemctl daemon-reload`. This is intentional so that way `systemctl daemon-reload` is not ran twice, and the code is still functional, where the service gets restarted as expected. [ Impact ] Impacted versions are in proposed (lunar-proposed) 0.8.8-1ubuntu2.1 (jammy-proposed) 0.8.8-1ubuntu1.22.04.2 In the proposed package, the removal of init scripts was done. This caused an issue on upgrade because the old .prerm used invoke-rc.d to stop multipathd.service and then the service is started in the .postinst. This causes an issue because multipathd.service was never stopped, so when .postinst attempts to start the service, the service is not reloaded, as it is already running. Thus, on upgrade from the versions with the init script, the multipathd.service is not restarted, and the older version persists until a reboot or manual restart happens. [ Test Plan ] The current dep8 test is sufficient for testing functionality of multipath-tools, so the testing is targetting the upgrade behavior and additional scrutiny on multipath-tools-boot. multipath-tools-boot is explcitly included in this testing because it is not covered in dep8 and regressions in this package can cause systems to not boot, which makes it important to test properly. Tests are written for lunar, but will be the similar for Jammy. Just change the lxc image and the version numbers 1) On upgrade $ lxc launch ubuntu:lunar l --vm $ lxc shell l # dpkg -l multipath-tools | grep multipath-tools | awk '{print $3}' 0.8.8-1ubuntu2 # pidof multipathd <some number> # apt install -y multipath-tools=0.8.8-1ubuntu2.2 # pidof multipathd <should be a different number than before> # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller      Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:40:09 UTC; 17s ago -- ● multipathd.socket - multipathd control socket      Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:40:09 UTC; 17s ago 2) Installing a fresh package $ lxc launch ubuntu:lunar l --vm $ lxc shell l # apt purge -y multipath-tools # apt update -y # apt install -y multipath-tools=0.8.8-1ubuntu2.2 # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller      Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:41:27 UTC; 3s ago -- ○ multipathd.socket - multipathd control socket      Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled)      Active: inactive (dead) 3) Upgrading to future packages This requires making a test package > 0.8.8-1ubuntu2.2 $ lxc launch ubuntu:lunar l --vm $ lxc shell l # dpkg -l multipath-tools | grep multipath-tools | awk '{print $3}' 0.8.8-1ubuntu2.2 # pidof multipathd <some number> # apt install -y multipath-tools=0.8.8-1ubuntu2.3 # pidof multipathd3 <should be a different number then before> # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller      Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:42:01 UTC; 3s ago -- ○ multipathd.socket - multipathd control socket      Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled)      Active: inactive (dead) 4) Also tested is multipath-tools-boot manually as a sanity check that booting still occurs. This is done manually like so: $ download latest lunar-live-server-amd64.iso $ fallocate -l 20G image.img $ kvm -m 2048 -boot d -cdrom ./lunar-live-server-amd64.iso -device virtio-scsi-pci,id=scsi -drive file=image.img,if=none,id=sda,format=raw,file.locking=off -device scsi-hd,drive=sda,serial=0001 -drive if=none,id=sdb,file=image.img,format=raw,file.locking=off -device scsi-hd,drive=sdb,serial=0001 Install like regular, reboot. Stop reboot process. $ kvm -m 2048 -boot c -cdrom ./lunar-live-server-amd64.iso -device virtio-scsi-pci,id=scsi -drive file=image.img,if=none,id=sda,format=raw,file.locking=off -device scsi-hd,drive=sda,serial=0001 -drive if=none,id=sdb,file=image.img,format=raw,file.locking=off -device scsi-hd,drive=sdb,serial=0001 After changing to -boot c, ensure you can login and check that the root partition is using the multipathd devices with lsblk and multipath -l [ Where Problems could Occur ] * This stops & starts both the service/socket. The user could want to have just the socket active, or just the service active * User could want the multipathd service/socket inactive on purpose, upgrading will activate both of them [ Important info regarding this bug ] This bug is blocking the phasing of the [lunar|jammy]-proposed multipath-tools package, so it is important that when uploaded, the changes from the proposed pocket are included. While testing the fix for this issue, a new bug was noticed, that on certain operations (upgrade/fresh install) of multipath-tools, the multipathd.socket would be in an inactive state. This is not addressed in this bug, because it is present in Mantic and a proper solution is being found for that and will potentially be SRU'd later. New bug found - https://bugs.launchpad.net/ubuntu/+source/multipath-tools/+bug/2034471 [ Impact ] Impacted versions are in proposed (lunar-proposed) 0.8.8-1ubuntu2.1 (jammy-proposed) 0.8.8-1ubuntu1.22.04.2 In the package currently in proposed (see versions above), this is the sequence of events during a package upgrade: 1) "old-prerm upgrade <vers>": - "invoke-rc.d multipath-tools stop" is only called if "$1" is "remove", which is not the case here. - "deb-systemd-invoke stop multipathd.socket" does not stop the service, just the socket Therefore, at the end of this script, we have the socket stopped, but the service running 2) "old-postrm upgrade <vers>": - all service actions are conditioned on "$1" being "remove" or "purge", not the case here 3) "new-postinst configure <vers>" - here we reach the point where "$1" is checked for "configure", and then deb-systemd-invoke start is called on the service and the socket. Except, since the service is still running, and wasn't stopped by prerm, starting it is a noop. Boom, package upgrade is finished and service was not restarted. [ Fix ] The previous multipath-tools.prerm maintainer script did not stop the multipathd.service unit, therefore it needs to be stopped in postinst for this specific upgrade case. "systemctl daemon-reload" is specifically not being called before deb-systemd-invoke because: a) it will be called later in the script, before multipathd.service is started, so let's not call it twice b) it has system-wide effects, like running all systemd generators again c) we don't really need the new multipathd.service unit file to stop the old running daemon. In fact, one could argue it's more correct to use the old unit file to stop the old daemon. This approach will generate a one-time warning: ``` Warning: The unit file, source configuration file or drop-ins of multipathd.service changed on disk. Run 'systemctl daemon-reload' to reload units. ``` [ Test Plan ] The current dep8 test is sufficient for testing functionality of multipath-tools, so the test plan for this update is targetting the upgrade behavior and additional scrutiny on multipath-tools-boot. multipath-tools-boot is explicitly included in this testing because it is not covered in dep8 and regressions in this package can cause systems to not boot, which makes it important to test properly. Tests are written for lunar, but will be the similar for Jammy. Just change the lxc image and the version numbers 1) On upgrade $ lxc launch ubuntu:lunar l --vm $ lxc shell l # dpkg -l multipath-tools | grep multipath-tools | awk '{print $3}' 0.8.8-1ubuntu2 # pidof multipathd <some number> # apt install -y multipath-tools=0.8.8-1ubuntu2.2 # pidof multipathd <should be a different number than before> # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller      Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:40:09 UTC; 17s ago -- ● multipathd.socket - multipathd control socket      Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:40:09 UTC; 17s ago 2) Installing a fresh package $ lxc launch ubuntu:lunar l --vm $ lxc shell l # apt purge -y multipath-tools # apt update -y # apt install -y multipath-tools=0.8.8-1ubuntu2.2 # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller      Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:41:27 UTC; 3s ago -- ○ multipathd.socket - multipathd control socket      Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled)      Active: inactive (dead) 3) Upgrading to future packages This requires making a test package > 0.8.8-1ubuntu2.2 $ lxc launch ubuntu:lunar l --vm $ lxc shell l # dpkg -l multipath-tools | grep multipath-tools | awk '{print $3}' 0.8.8-1ubuntu2.2 # pidof multipathd <some number> # apt install -y multipath-tools=0.8.8-1ubuntu2.3 # pidof multipathd3 <should be a different number then before> # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller      Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:42:01 UTC; 3s ago -- ○ multipathd.socket - multipathd control socket      Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled)      Active: inactive (dead) 4) Also tested is multipath-tools-boot manually as a sanity check that booting still occurs. This is done manually like so: $ download latest lunar-live-server-amd64.iso $ fallocate -l 20G image.img $ kvm -m 2048 -boot d -cdrom ./lunar-live-server-amd64.iso -device virtio-scsi-pci,id=scsi -drive file=image.img,if=none,id=sda,format=raw,file.locking=off -device scsi-hd,drive=sda,serial=0001 -drive if=none,id=sdb,file=image.img,format=raw,file.locking=off -device scsi-hd,drive=sdb,serial=0001 Install like regular, reboot. Stop reboot process. $ kvm -m 2048 -boot c -cdrom ./lunar-live-server-amd64.iso -device virtio-scsi-pci,id=scsi -drive file=image.img,if=none,id=sda,format=raw,file.locking=off -device scsi-hd,drive=sda,serial=0001 -drive if=none,id=sdb,file=image.img,format=raw,file.locking=off -device scsi-hd,drive=sdb,serial=0001 After changing to -boot c, ensure you can login and check that the root partition is using the multipathd devices with lsblk and multipath -l [ Where Problems could Occur ] * This stops & starts both the service/socket. The user could want to have just the socket active, or just the service active * User could want the multipathd service/socket inactive on purpose, upgrading will activate both of them
2023-10-06 18:35:27 Mitchell Dzurick description [ Important info regarding this bug ] This bug is blocking the phasing of the [lunar|jammy]-proposed multipath-tools package, so it is important that when uploaded, the changes from the proposed pocket are included. While testing the fix for this issue, a new bug was noticed, that on certain operations (upgrade/fresh install) of multipath-tools, the multipathd.socket would be in an inactive state. This is not addressed in this bug, because it is present in Mantic and a proper solution is being found for that and will potentially be SRU'd later. New bug found - https://bugs.launchpad.net/ubuntu/+source/multipath-tools/+bug/2034471 [ Impact ] Impacted versions are in proposed (lunar-proposed) 0.8.8-1ubuntu2.1 (jammy-proposed) 0.8.8-1ubuntu1.22.04.2 In the package currently in proposed (see versions above), this is the sequence of events during a package upgrade: 1) "old-prerm upgrade <vers>": - "invoke-rc.d multipath-tools stop" is only called if "$1" is "remove", which is not the case here. - "deb-systemd-invoke stop multipathd.socket" does not stop the service, just the socket Therefore, at the end of this script, we have the socket stopped, but the service running 2) "old-postrm upgrade <vers>": - all service actions are conditioned on "$1" being "remove" or "purge", not the case here 3) "new-postinst configure <vers>" - here we reach the point where "$1" is checked for "configure", and then deb-systemd-invoke start is called on the service and the socket. Except, since the service is still running, and wasn't stopped by prerm, starting it is a noop. Boom, package upgrade is finished and service was not restarted. [ Fix ] The previous multipath-tools.prerm maintainer script did not stop the multipathd.service unit, therefore it needs to be stopped in postinst for this specific upgrade case. "systemctl daemon-reload" is specifically not being called before deb-systemd-invoke because: a) it will be called later in the script, before multipathd.service is started, so let's not call it twice b) it has system-wide effects, like running all systemd generators again c) we don't really need the new multipathd.service unit file to stop the old running daemon. In fact, one could argue it's more correct to use the old unit file to stop the old daemon. This approach will generate a one-time warning: ``` Warning: The unit file, source configuration file or drop-ins of multipathd.service changed on disk. Run 'systemctl daemon-reload' to reload units. ``` [ Test Plan ] The current dep8 test is sufficient for testing functionality of multipath-tools, so the test plan for this update is targetting the upgrade behavior and additional scrutiny on multipath-tools-boot. multipath-tools-boot is explicitly included in this testing because it is not covered in dep8 and regressions in this package can cause systems to not boot, which makes it important to test properly. Tests are written for lunar, but will be the similar for Jammy. Just change the lxc image and the version numbers 1) On upgrade $ lxc launch ubuntu:lunar l --vm $ lxc shell l # dpkg -l multipath-tools | grep multipath-tools | awk '{print $3}' 0.8.8-1ubuntu2 # pidof multipathd <some number> # apt install -y multipath-tools=0.8.8-1ubuntu2.2 # pidof multipathd <should be a different number than before> # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller      Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:40:09 UTC; 17s ago -- ● multipathd.socket - multipathd control socket      Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:40:09 UTC; 17s ago 2) Installing a fresh package $ lxc launch ubuntu:lunar l --vm $ lxc shell l # apt purge -y multipath-tools # apt update -y # apt install -y multipath-tools=0.8.8-1ubuntu2.2 # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller      Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:41:27 UTC; 3s ago -- ○ multipathd.socket - multipathd control socket      Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled)      Active: inactive (dead) 3) Upgrading to future packages This requires making a test package > 0.8.8-1ubuntu2.2 $ lxc launch ubuntu:lunar l --vm $ lxc shell l # dpkg -l multipath-tools | grep multipath-tools | awk '{print $3}' 0.8.8-1ubuntu2.2 # pidof multipathd <some number> # apt install -y multipath-tools=0.8.8-1ubuntu2.3 # pidof multipathd3 <should be a different number then before> # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller      Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:42:01 UTC; 3s ago -- ○ multipathd.socket - multipathd control socket      Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled)      Active: inactive (dead) 4) Also tested is multipath-tools-boot manually as a sanity check that booting still occurs. This is done manually like so: $ download latest lunar-live-server-amd64.iso $ fallocate -l 20G image.img $ kvm -m 2048 -boot d -cdrom ./lunar-live-server-amd64.iso -device virtio-scsi-pci,id=scsi -drive file=image.img,if=none,id=sda,format=raw,file.locking=off -device scsi-hd,drive=sda,serial=0001 -drive if=none,id=sdb,file=image.img,format=raw,file.locking=off -device scsi-hd,drive=sdb,serial=0001 Install like regular, reboot. Stop reboot process. $ kvm -m 2048 -boot c -cdrom ./lunar-live-server-amd64.iso -device virtio-scsi-pci,id=scsi -drive file=image.img,if=none,id=sda,format=raw,file.locking=off -device scsi-hd,drive=sda,serial=0001 -drive if=none,id=sdb,file=image.img,format=raw,file.locking=off -device scsi-hd,drive=sdb,serial=0001 After changing to -boot c, ensure you can login and check that the root partition is using the multipathd devices with lsblk and multipath -l [ Where Problems could Occur ] * This stops & starts both the service/socket. The user could want to have just the socket active, or just the service active * User could want the multipathd service/socket inactive on purpose, upgrading will activate both of them [ Important info regarding this bug ] This bug is blocking the phasing of the [lunar|jammy]-proposed multipath-tools package, so it is important that when uploaded, the changes from the proposed pocket are included. While testing the fix for this issue, a new bug was noticed, that on certain operations (upgrade/fresh install) of multipath-tools, the multipathd.socket would be in an inactive state. This is not addressed in this bug, because it is present in Mantic and a proper solution is being found for that and will potentially be SRU'd later. New bug found - https://bugs.launchpad.net/ubuntu/+source/multipath-tools/+bug/2034471 [ Impact ] Impacted versions are in proposed (lunar-proposed) 0.8.8-1ubuntu2.1 (jammy-proposed) 0.8.8-1ubuntu1.22.04.2 In the package currently in proposed (see versions above), this is the sequence of events during a package upgrade: 1) "old-prerm upgrade <vers>": - "invoke-rc.d multipath-tools stop" is only called if "$1" is "remove", which is not the case here. - "deb-systemd-invoke stop multipathd.socket" does not stop the service, just the socket Therefore, at the end of this script, we have the socket stopped, but the service running 2) "old-postrm upgrade <vers>": - all service actions are conditioned on "$1" being "remove" or "purge", not the case here 3) "new-postinst configure <vers>" - here we reach the point where "$1" is checked for "configure", and then deb-systemd-invoke start is called on the service and the socket. Except, since the service is still running, and wasn't stopped by prerm, starting it is a noop. Boom, package upgrade is finished and service was not restarted. [ Fix ] The previous multipath-tools.prerm maintainer script did not stop the multipathd.service unit, therefore it needs to be stopped in postinst for this specific upgrade case. "systemctl daemon-reload" is specifically not being called before deb-systemd-invoke because:   a) it will be called later in the script, before multipathd.service is started, so let's not call it twice   b) it has system-wide effects, like running all systemd generators again   c) we don't really need the new multipathd.service unit file to stop the old running daemon. In fact, one could argue it's more correct to use the old unit file to stop the old daemon. This approach will generate a one-time warning: ``` Warning: The unit file, source configuration file or drop-ins of multipathd.service changed on disk. Run 'systemctl daemon-reload' to reload units. ``` [ Test Plan ] The current dep8 test is sufficient for testing functionality of multipath-tools, so the test plan for this update is targetting the upgrade behavior and additional scrutiny on multipath-tools-boot. multipath-tools-boot is explicitly included in this testing because it is not covered in dep8 and regressions in this package can cause systems to not boot, which makes it important to test properly. Tests are written for lunar, but will be the similar for Jammy. Just change the lxc image and the version numbers 1) On upgrade $ lxc launch ubuntu:lunar l --vm $ lxc shell l # dpkg -l multipath-tools | grep multipath-tools | awk '{print $3}' 0.8.8-1ubuntu2 # pidof multipathd <some number> # apt install -y multipath-tools=0.8.8-1ubuntu2.2 # pidof multipathd <should be a different number than before> # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller      Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:40:09 UTC; 17s ago -- ● multipathd.socket - multipathd control socket      Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:40:09 UTC; 17s ago 2) Installing a fresh package $ lxc launch ubuntu:lunar l --vm $ lxc shell l # apt purge -y multipath-tools # apt update -y # apt install -y multipath-tools=0.8.8-1ubuntu2.2 # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller      Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:41:27 UTC; 3s ago -- ○ multipathd.socket - multipathd control socket      Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled)      Active: inactive (dead) 3) Upgrading to future packages This requires making a test package > 0.8.8-1ubuntu2.2 $ lxc launch ubuntu:lunar l --vm $ lxc shell l # dpkg -l multipath-tools | grep multipath-tools | awk '{print $3}' 0.8.8-1ubuntu2.2 # pidof multipathd <some number> # apt install -y multipath-tools=0.8.8-1ubuntu2.3 # pidof multipathd3 <should be a different number then before> # systemctl status multipathd.service multipathd.socket | grep Active -B2 ● multipathd.service - Device-Mapper Multipath Device Controller      Loaded: loaded (/lib/systemd/system/multipathd.service; enabled; preset: enabled)      Active: active (running) since Wed 2023-09-20 12:42:01 UTC; 3s ago -- ○ multipathd.socket - multipathd control socket      Loaded: loaded (/lib/systemd/system/multipathd.socket; enabled; preset: enabled)      Active: inactive (dead) 4) Also tested is multipath-tools-boot manually as a sanity check that booting still occurs. This is done manually like so: $ download latest lunar-live-server-amd64.iso $ fallocate -l 20G image.img $ kvm -m 2048 -boot d -cdrom ./lunar-live-server-amd64.iso -device virtio-scsi-pci,id=scsi -drive file=image.img,if=none,id=sda,format=raw,file.locking=off -device scsi-hd,drive=sda,serial=0001 -drive if=none,id=sdb,file=image.img,format=raw,file.locking=off -device scsi-hd,drive=sdb,serial=0001 Install like regular, reboot. Stop reboot process. $ kvm -m 2048 -boot c -cdrom ./lunar-live-server-amd64.iso -device virtio-scsi-pci,id=scsi -drive file=image.img,if=none,id=sda,format=raw,file.locking=off -device scsi-hd,drive=sda,serial=0001 -drive if=none,id=sdb,file=image.img,format=raw,file.locking=off -device scsi-hd,drive=sdb,serial=0001 After changing to -boot c, ensure you can login and check that the root partition is using the multipathd devices with lsblk and multipath -l [ Where Problems could Occur ] * Users could mistake the newly generated one-time warning as an error * Upgrading will make the socket inactive (this is mentioned above as a known bug, so it is not a regression due to this fix)
2023-10-06 18:57:06 Andreas Hasenack nominated for series Ubuntu Lunar
2023-10-06 18:57:06 Andreas Hasenack bug task added multipath-tools (Ubuntu Lunar)
2023-10-06 18:57:06 Andreas Hasenack nominated for series Ubuntu Jammy
2023-10-06 18:57:06 Andreas Hasenack bug task added multipath-tools (Ubuntu Jammy)
2023-10-06 20:50:17 Andreas Hasenack nominated for series Ubuntu Mantic
2023-10-06 20:50:17 Andreas Hasenack bug task added multipath-tools (Ubuntu Mantic)
2023-10-06 20:50:21 Andreas Hasenack multipath-tools (Ubuntu Mantic): status New Fix Released
2023-10-13 11:36:56 Timo Aaltonen multipath-tools (Ubuntu Lunar): status New Fix Committed
2023-10-13 11:36:58 Timo Aaltonen bug added subscriber Ubuntu Stable Release Updates Team
2023-10-13 11:37:01 Timo Aaltonen bug added subscriber SRU Verification
2023-10-13 11:37:05 Timo Aaltonen tags server-todo server-todo verification-needed verification-needed-lunar
2023-10-13 11:38:10 Timo Aaltonen multipath-tools (Ubuntu Jammy): status New Fix Committed
2023-10-13 11:38:13 Timo Aaltonen tags server-todo verification-needed verification-needed-lunar server-todo verification-needed verification-needed-jammy verification-needed-lunar
2023-10-16 16:08:43 Mitchell Dzurick attachment added lunar_test.txt https://bugs.launchpad.net/ubuntu/+source/multipath-tools/+bug/2035098/+attachment/5709958/+files/lunar_test.txt
2023-10-16 16:09:47 Mitchell Dzurick tags server-todo verification-needed verification-needed-jammy verification-needed-lunar server-todo verification-done-lunar verification-needed verification-needed-jammy
2023-10-16 16:10:23 Mitchell Dzurick attachment added jammy_test.txt https://bugs.launchpad.net/ubuntu/+source/multipath-tools/+bug/2035098/+attachment/5709959/+files/jammy_test.txt
2023-10-16 16:10:44 Mitchell Dzurick tags server-todo verification-done-lunar verification-needed verification-needed-jammy server-todo verification-done verification-done-jammy verification-done-lunar