Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package systemd for openSUSE:Factory checked in at 2021-08-04 22:28:26 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/systemd (Old) and /work/SRC/openSUSE:Factory/.systemd.new.1899 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "systemd" Wed Aug 4 22:28:26 2021 rev:334 rq:909721 version:248.6 Changes: -------- --- /work/SRC/openSUSE:Factory/systemd/systemd-mini.changes 2021-08-02 12:04:56.789657608 +0200 +++ /work/SRC/openSUSE:Factory/.systemd.new.1899/systemd-mini.changes 2021-08-04 22:29:05.813786469 +0200 @@ -1,0 +2,6 @@ +Thu Jul 29 13:12:48 UTC 2021 - Franck Bui <f...@suse.com> + +- Avoid the error message when udev is updated due to udev being + already active when the sockets are started again (bsc#1188291) + +------------------------------------------------------------------- systemd.changes: same change ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ systemd-mini.spec ++++++ --- /var/tmp/diff_new_pack.USTuGL/_old 2021-08-04 22:29:06.793785273 +0200 +++ /var/tmp/diff_new_pack.USTuGL/_new 2021-08-04 22:29:06.797785268 +0200 @@ -974,17 +974,21 @@ %postun -n udev%{?mini} %regenerate_initrd_post -systemctl daemon-reload || : -# On package update, restarting the socket units will probably fail as -# udevd is most likely running. Therefore systemctl will refuse to -# start them again once stopped. It's not an issue since we are mostly -# interested to make PID1 use the updated unit files once the socket -# units wil be started again. And that will happen when systemd-udevd -# itself will be restarted. -if [ $1 -ge 1 ]; then - systemctl try-restart systemd-udevd-{control,kernel}.socket 2>/dev/null || : - systemctl try-restart systemd-udevd.service || : -fi + +# The order of the units being restarted is important here because there's currently no +# way to queue multiple jobs into a single transaction atomically. Therefore systemctl +# will create 3 restart jobs that can be handled by PID1 separately and if the jobs for +# the sockets are being handled first then starting them again will fail as the service +# is still active hence the sockets held by udevd. However if the restart job for udevd +# is handled first, there should be enough time to queue the socket jobs before the stop +# job for udevd is processed. Hence PID1 will automatically sort the restart jobs +# correctly by stopping the service then the sockets and then by starting the sockets and +# the unit. +# +# Note that when systemd-udevd is restarted, there will always be a short time +# frame where no socket will be listening to the events sent by the kernel, no +# matter if the socket unit is restarted in first or not. +%service_del_postun_with_restart systemd-udevd.service systemd-udevd-{control,kernel}.socket %posttrans -n udev%{?mini} %regenerate_initrd_posttrans ++++++ systemd.spec ++++++ --- /var/tmp/diff_new_pack.USTuGL/_old 2021-08-04 22:29:06.829785229 +0200 +++ /var/tmp/diff_new_pack.USTuGL/_new 2021-08-04 22:29:06.833785224 +0200 @@ -972,17 +972,21 @@ %postun -n udev%{?mini} %regenerate_initrd_post -systemctl daemon-reload || : -# On package update, restarting the socket units will probably fail as -# udevd is most likely running. Therefore systemctl will refuse to -# start them again once stopped. It's not an issue since we are mostly -# interested to make PID1 use the updated unit files once the socket -# units wil be started again. And that will happen when systemd-udevd -# itself will be restarted. -if [ $1 -ge 1 ]; then - systemctl try-restart systemd-udevd-{control,kernel}.socket 2>/dev/null || : - systemctl try-restart systemd-udevd.service || : -fi + +# The order of the units being restarted is important here because there's currently no +# way to queue multiple jobs into a single transaction atomically. Therefore systemctl +# will create 3 restart jobs that can be handled by PID1 separately and if the jobs for +# the sockets are being handled first then starting them again will fail as the service +# is still active hence the sockets held by udevd. However if the restart job for udevd +# is handled first, there should be enough time to queue the socket jobs before the stop +# job for udevd is processed. Hence PID1 will automatically sort the restart jobs +# correctly by stopping the service then the sockets and then by starting the sockets and +# the unit. +# +# Note that when systemd-udevd is restarted, there will always be a short time +# frame where no socket will be listening to the events sent by the kernel, no +# matter if the socket unit is restarted in first or not. +%service_del_postun_with_restart systemd-udevd.service systemd-udevd-{control,kernel}.socket %posttrans -n udev%{?mini} %regenerate_initrd_posttrans