Package: init-system-helpers
Version: 1.65.2
Severity: serious
User: debian...@lists.debian.org
Usertags: piuparts
Control: affects -1 e2fsprogs

Hi,

many piuparts bullseye2bookworm tests are curently failing with

0m50.4s ERROR: FAIL: After purging files have disappeared:
  /etc/systemd/system/multi-user.target.wants/   not owned
  /etc/systemd/system/multi-user.target.wants/e2scrub_reap.service -> 
/lib/systemd/system/e2scrub_reap.service   not owned

This is a new systemd unit in package e2fsprogs. If this failure is
actually e2fsprogs's fault by incorrectly using the helpers, please
reassign the bug there (with instructions how to do it correctly).

The following happens before the bug manifests.

Piupart generally uses --no-install-recommends, but that does not seem
to have an influence here.

The minimal bullseye chroot used by piuparts contains e2fsprogs but not
systemd. If I upgrade that chroot to bookworm, 
  /etc/systemd/system/multi-user.target.wants/e2scrub_reap.service -> 
/lib/systemd/system/e2scrub_reap.service
gets created. e2fsprogs is still installed, systemd is still not
installed.

If I install systemd into the bullseye chroot and upgrade that to
bookworm, both systemd and e2fsprogs are still installed, but 
  /etc/systemd/system/multi-user.target.wants/e2scrub_reap.service
does *NOT* get created.

piuparts then removes the tested packages and their deps from the chroot
and compares the result against the upgraded reference chroot.

I added some debug code to e2fsprogs.postinst (set -x,
_DEB_SYSTEMD_HELPER_DEBUG=1, listing multi-user.target.wants), and used
that version during the dist-upgrade, but there was no significant
difference in output between the two upgrade paths:

===== upgrade without systemd =====
  Setting up e2fsprogs (1.47.0-2+deb12anbe1) ...
  Installing new version of config file /etc/mke2fs.conf ...
  + set -e
  + [ -x /usr/sbin/update-initramfs -a -e /etc/initramfs-tools/initramfs.conf ]
  + export _DEB_SYSTEMD_HELPER_DEBUG=1
  + ls -la /etc/systemd/system/multi-user.target.wants
  ls: cannot access '/etc/systemd/system/multi-user.target.wants': No such file 
or directory
  + true
  + [ configure = configure ]
  + deb-systemd-helper unmask e2scrub_all.timer
  (deb-systemd-helper DEBUG) is purge = no
  (deb-systemd-helper DEBUG) action = unmask, scriptname = e2scrub_all.timer, 
service_path = /lib/systemd/system/e2scrub_all.timer
  (deb-systemd-helper DEBUG) rmdir_if_empty 
/var/lib/systemd/deb-systemd-helper-masked
  (deb-systemd-helper DEBUG) rmdir(/var/lib/systemd/deb-systemd-helper-masked) 
failed (No such file or directory)
  (deb-systemd-helper DEBUG) rmdir_if_empty 
/var/lib/systemd/deb-systemd-user-helper-masked
  (deb-systemd-helper DEBUG) 
rmdir(/var/lib/systemd/deb-systemd-user-helper-masked) failed (No such file or 
directory)
  + deb-systemd-helper --quiet was-enabled e2scrub_all.timer
  (deb-systemd-helper DEBUG) is purge = no
  (deb-systemd-helper DEBUG) action = was-enabled, scriptname = 
e2scrub_all.timer, service_path = /lib/systemd/system/e2scrub_all.timer
  (deb-systemd-helper DEBUG) Reading state file 
/var/lib/systemd/deb-systemd-helper-enabled/e2scrub_all.timer.dsh-also
  (deb-systemd-helper DEBUG) Contents: $VAR1 = [
            '/etc/systemd/system/timers.target.wants/e2scrub_all.timer'
          ];
  
  (deb-systemd-helper DEBUG) All links present, considering e2scrub_all.timer 
was-enabled.
  + deb-systemd-helper enable e2scrub_all.timer
  (deb-systemd-helper DEBUG) is purge = no
  (deb-systemd-helper DEBUG) action = enable, scriptname = e2scrub_all.timer, 
service_path = /lib/systemd/system/e2scrub_all.timer
  (deb-systemd-helper DEBUG) Renaming temp file 
/var/lib/systemd/deb-systemd-helper-enabled/.statedbM8J.tmp to state file 
/var/lib/systemd/deb-systemd-helper-enabled/e2scrub_all.timer.dsh-also
  + [ configure = configure ]
  + deb-systemd-helper unmask e2scrub_reap.service
  (deb-systemd-helper DEBUG) is purge = no
  (deb-systemd-helper DEBUG) action = unmask, scriptname = 
e2scrub_reap.service, service_path = /lib/systemd/system/e2scrub_reap.service
  (deb-systemd-helper DEBUG) rmdir_if_empty 
/var/lib/systemd/deb-systemd-helper-masked
  (deb-systemd-helper DEBUG) rmdir(/var/lib/systemd/deb-systemd-helper-masked) 
failed (No such file or directory)
  (deb-systemd-helper DEBUG) rmdir_if_empty 
/var/lib/systemd/deb-systemd-user-helper-masked
  (deb-systemd-helper DEBUG) 
rmdir(/var/lib/systemd/deb-systemd-user-helper-masked) failed (No such file or 
directory)
  + deb-systemd-helper --quiet was-enabled e2scrub_reap.service
  (deb-systemd-helper DEBUG) is purge = no
  (deb-systemd-helper DEBUG) action = was-enabled, scriptname = 
e2scrub_reap.service, service_path = /lib/systemd/system/e2scrub_reap.service
  (deb-systemd-helper DEBUG) Reading state file 
/var/lib/systemd/deb-systemd-helper-enabled/e2scrub_reap.service.dsh-also
  (deb-systemd-helper DEBUG) Contents: $VAR1 = [
            '/etc/systemd/system/default.target.wants/e2scrub_reap.service'
          ];
  
  (deb-systemd-helper DEBUG) All links present, considering 
e2scrub_reap.service was-enabled.
  + deb-systemd-helper enable e2scrub_reap.service
  (deb-systemd-helper DEBUG) is purge = no
  (deb-systemd-helper DEBUG) action = enable, scriptname = 
e2scrub_reap.service, service_path = /lib/systemd/system/e2scrub_reap.service
  (deb-systemd-helper DEBUG) Renaming temp file 
/var/lib/systemd/deb-systemd-helper-enabled/.state7t5xW.tmp to state file 
/var/lib/systemd/deb-systemd-helper-enabled/e2scrub_reap.service.dsh-also
  + [ configure = configure ]
  + [ -d /run/systemd/system ]
  + ls -la /etc/systemd/system/multi-user.target.wants
  total 0
  drwxr-xr-x 2 root root  60 May  5 07:15 .
  drwxr-xr-x 5 root root 100 May  5 07:15 ..
  lrwxrwxrwx 1 root root  40 May  5 07:15 e2scrub_reap.service -> 
/lib/systemd/system/e2scrub_reap.service
  + exit 0
==========

===== upgrade with systemd =====
  Setting up e2fsprogs (1.47.0-2+deb12anbe1) ...
  Installing new version of config file /etc/mke2fs.conf ...
  + set -e
  + [ -x /usr/sbin/update-initramfs -a -e /etc/initramfs-tools/initramfs.conf ]
  + export _DEB_SYSTEMD_HELPER_DEBUG=1
  + ls -la /etc/systemd/system/multi-user.target.wants
  total 0
  drwxr-xr-x 2 root root  60 May  5 07:15 .
  drwxr-xr-x 7 root root 140 May  5 07:15 ..
  lrwxrwxrwx 1 root root  36 May  5 07:15 remote-fs.target -> 
/lib/systemd/system/remote-fs.target
  + [ configure = configure ]
  + deb-systemd-helper unmask e2scrub_all.timer
  (deb-systemd-helper DEBUG) is purge = no
  (deb-systemd-helper DEBUG) action = unmask, scriptname = e2scrub_all.timer, 
service_path = /lib/systemd/system/e2scrub_all.timer
  (deb-systemd-helper DEBUG) rmdir_if_empty 
/var/lib/systemd/deb-systemd-helper-masked
  (deb-systemd-helper DEBUG) rmdir(/var/lib/systemd/deb-systemd-helper-masked) 
failed (No such file or directory)
  (deb-systemd-helper DEBUG) rmdir_if_empty 
/var/lib/systemd/deb-systemd-user-helper-masked
  (deb-systemd-helper DEBUG) 
rmdir(/var/lib/systemd/deb-systemd-user-helper-masked) failed (No such file or 
directory)
  + deb-systemd-helper --quiet was-enabled e2scrub_all.timer
  (deb-systemd-helper DEBUG) is purge = no
  (deb-systemd-helper DEBUG) action = was-enabled, scriptname = 
e2scrub_all.timer, service_path = /lib/systemd/system/e2scrub_all.timer
  (deb-systemd-helper DEBUG) Reading state file 
/var/lib/systemd/deb-systemd-helper-enabled/e2scrub_all.timer.dsh-also
  (deb-systemd-helper DEBUG) Contents: $VAR1 = [
            '/etc/systemd/system/timers.target.wants/e2scrub_all.timer'
          ];

  (deb-systemd-helper DEBUG) All links present, considering e2scrub_all.timer 
was-enabled.
  + deb-systemd-helper enable e2scrub_all.timer
  (deb-systemd-helper DEBUG) is purge = no
  (deb-systemd-helper DEBUG) action = enable, scriptname = e2scrub_all.timer, 
service_path = /lib/systemd/system/e2scrub_all.timer
  (deb-systemd-helper DEBUG) Renaming temp file 
/var/lib/systemd/deb-systemd-helper-enabled/.staterx1xW.tmp to state file 
/var/lib/systemd/deb-systemd-helper-enabled/e2scrub_all.timer.dsh-also
  + [ configure = configure ]
  + deb-systemd-helper unmask e2scrub_reap.service
  (deb-systemd-helper DEBUG) is purge = no
  (deb-systemd-helper DEBUG) action = unmask, scriptname = 
e2scrub_reap.service, service_path = /lib/systemd/system/e2scrub_reap.service
  (deb-systemd-helper DEBUG) rmdir_if_empty 
/var/lib/systemd/deb-systemd-helper-masked
  (deb-systemd-helper DEBUG) rmdir(/var/lib/systemd/deb-systemd-helper-masked) 
failed (No such file or directory)
  (deb-systemd-helper DEBUG) rmdir_if_empty 
/var/lib/systemd/deb-systemd-user-helper-masked
  (deb-systemd-helper DEBUG) 
rmdir(/var/lib/systemd/deb-systemd-user-helper-masked) failed (No such file or 
directory)
  + deb-systemd-helper --quiet was-enabled e2scrub_reap.service
  (deb-systemd-helper DEBUG) is purge = no
  (deb-systemd-helper DEBUG) action = was-enabled, scriptname = 
e2scrub_reap.service, service_path = /lib/systemd/system/e2scrub_reap.service
  (deb-systemd-helper DEBUG) Reading state file 
/var/lib/systemd/deb-systemd-helper-enabled/e2scrub_reap.service.dsh-also
  (deb-systemd-helper DEBUG) Contents: $VAR1 = [
            '/etc/systemd/system/default.target.wants/e2scrub_reap.service'
          ];

  (deb-systemd-helper DEBUG) All links present, considering 
e2scrub_reap.service was-enabled.
  + deb-systemd-helper enable e2scrub_reap.service
  (deb-systemd-helper DEBUG) is purge = no
  (deb-systemd-helper DEBUG) action = enable, scriptname = 
e2scrub_reap.service, service_path = /lib/systemd/system/e2scrub_reap.service
  (deb-systemd-helper DEBUG) Renaming temp file 
/var/lib/systemd/deb-systemd-helper-enabled/.stateHcfa1.tmp to state file 
/var/lib/systemd/deb-systemd-helper-enabled/e2scrub_reap.service.dsh-also
  + [ configure = configure ]
  + [ -d /run/systemd/system ]
  + ls -la /etc/systemd/system/multi-user.target.wants
  total 0
  drwxr-xr-x 2 root root  60 May  5 07:15 .
  drwxr-xr-x 7 root root 140 May  5 07:15 ..
  lrwxrwxrwx 1 root root  36 May  5 07:15 remote-fs.target -> 
/lib/systemd/system/remote-fs.target
  + exit 0
==========

I tried varying the upgrade order (in the normal upgrade path e2fsprogs
got configured while the new systemd was unpacked but not yet
configured), but that didn't change the outcome.
I tried installing the new systemd first, then performing the
dist-upgrade. And also installing the new e2fsprogs first, then
upgrading the rest of the chroot. In both cases
/etc/systemd/system/multi-user.target.wants/e2scrub_reap.service was
missing.


I'm filing this bug as serious as it looks like systemd units my not get
enabled on upgrades from bullseye to bookworm while they should be.

I'm attaching the full piuparts log in case you are interested in which
packages were involved in the upgrade.
(First part if the upgrade of the reference chroot, then the upgrade
after installing systemd).


Andreas

Attachment: systemd.b2b.4.log.gz
Description: application/gzip

Reply via email to