[Bug 1814355] Re: snapd remove /usr/local/bin from the PATH for all systemd unit (bionic SRU regression)
Dimitri John Ledkov
launchpad at surgut.co.uk
Wed Jun 26 08:58:47 UTC 2019
** Description changed:
+ [Impact]
+
+ * Initramfs exports PATH to init, which is different than the expected
+ stock / compiled one, which results in slightly different runtime
+ behaviour of init, if it has environment generators as well.
+
+
+ [Test Case]
+
+ * Disable snapd env generator & disable initrd-less boot (if enabled)
+ sudo chmod -x /usr/lib/systemd/system-environment-generators/snapd-env-generator
+ set empty GRUB_FORCE_PARTUUID= and update-grub
+
+ * Reboot cosmic system with an initramfs
+ $ journalctl -b -k | grep initramfs
+ (verify that initramfs was unpacked)
+
+ * Check the path used by systemd, ie.:
+ systemd-run /usr/bin/env
+ journalctl -b -e | grep PATH
+
+ It should contain /usr/local
+
+ * Upgrade initramfs-tools & reboot
+
+ The path should remain the same and it should contain /usr/local
+
+ * Enable snapd env generator and reboot again
+
+ * Verify path used by systemd
+
+ It should still contain /usr/local & /snap/bin
+
+ [Regression Potential]
+
+ * We are hardcoding, the same path, yet again, in one more place.
+ However, we are setting it to a well-known value as it was pre
+
+ [Other Info]
+
+ * Anything else you think is useful to include
+ * Anticipate questions from users, SRU, +1 maintenance, security teams and the Technical Board
+ * and address these questions in advance
+
+ ===
+
Big regression in 2.37.1+18.04 compare to version 2.34.2
all these paths /usr/local/sbin & /usr/local/bin are not anymore in
the path of all systemd process .
So we can not start a daemon that use /usr/local/bin
-
reinstalling package 2.34.2 fix the problem
in 2.34.2 :
-
+
~# strings /proc/$(pidof /lib/systemd/systemd-resolved)/environ | grep PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
in 2.37.1+18.04 :
~# strings /proc/$(pidof /lib/systemd/systemd-resolved)/environ | grep PATH
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/snap/bin
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to initramfs-tools in Ubuntu.
https://bugs.launchpad.net/bugs/1814355
Title:
snapd remove /usr/local/bin from the PATH for all systemd unit (bionic
SRU regression)
Status in initramfs-tools package in Ubuntu:
Fix Released
Status in snapd package in Ubuntu:
Confirmed
Status in systemd package in Ubuntu:
New
Status in initramfs-tools source package in Bionic:
New
Status in snapd source package in Bionic:
Fix Released
Status in systemd source package in Bionic:
New
Status in initramfs-tools source package in Cosmic:
New
Status in snapd source package in Cosmic:
New
Status in systemd source package in Cosmic:
New
Bug description:
[Impact]
* Initramfs exports PATH to init, which is different than the
expected stock / compiled one, which results in slightly different
runtime behaviour of init, if it has environment generators as well.
[Test Case]
* Disable snapd env generator & disable initrd-less boot (if enabled)
sudo chmod -x /usr/lib/systemd/system-environment-generators/snapd-env-generator
set empty GRUB_FORCE_PARTUUID= and update-grub
* Reboot cosmic system with an initramfs
$ journalctl -b -k | grep initramfs
(verify that initramfs was unpacked)
* Check the path used by systemd, ie.:
systemd-run /usr/bin/env
journalctl -b -e | grep PATH
It should contain /usr/local
* Upgrade initramfs-tools & reboot
The path should remain the same and it should contain /usr/local
* Enable snapd env generator and reboot again
* Verify path used by systemd
It should still contain /usr/local & /snap/bin
[Regression Potential]
* We are hardcoding, the same path, yet again, in one more place.
However, we are setting it to a well-known value as it was pre
[Other Info]
* Anything else you think is useful to include
* Anticipate questions from users, SRU, +1 maintenance, security teams and the Technical Board
* and address these questions in advance
===
Big regression in 2.37.1+18.04 compare to version 2.34.2
all these paths /usr/local/sbin & /usr/local/bin are not anymore in
the path of all systemd process .
So we can not start a daemon that use /usr/local/bin
reinstalling package 2.34.2 fix the problem
in 2.34.2 :
~# strings /proc/$(pidof /lib/systemd/systemd-resolved)/environ | grep PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
in 2.37.1+18.04 :
~# strings /proc/$(pidof /lib/systemd/systemd-resolved)/environ | grep PATH
PATH=/sbin:/usr/sbin:/bin:/usr/bin:/snap/bin
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/initramfs-tools/+bug/1814355/+subscriptions
More information about the foundations-bugs
mailing list