Package: systemd Version: 227-2 Severity: important User: debian...@lists.debian.org Usertags: piuparts Control: block -1 with 801156
Due to a bug in dpkg (#801156) a postinst script may be called without an "configured-version" parameter on upgrades and therefore act like on initial installs, skipping actions that may be needed for upgrading. So far systemd is the only package that exhibits this error in piuparts tests upgrading from jessie since there are actions (removal of an obsolete conffile and cleanup of hwclock-save.service symlinks) that are sometimes skipped and therefore leave a footprint in the filesystem that is noticed by piuparts while comparing the chroot after an distupgrade test with a reference chroot. >From the attached log: # configuration of systemd while upgrading the reference chroot from jessie to stretch Setting up systemd (227-2) ... Installing new version of config file /etc/dbus-1/system.d/org.freedesktop.login1.conf ... Installing new version of config file /etc/dbus-1/system.d/org.freedesktop.systemd1.conf ... Installing new version of config file /etc/pam.d/systemd-user ... Installing new version of config file /etc/systemd/bootchart.conf ... Installing new version of config file /etc/systemd/journald.conf ... Installing new version of config file /etc/systemd/logind.conf ... Installing new version of config file /etc/systemd/resolved.conf ... Installing new version of config file /etc/systemd/system.conf ... Installing new version of config file /etc/systemd/timesyncd.conf ... Installing new version of config file /etc/systemd/user.conf ... Created symlink from /etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service to /lib/systemd/system/systemd-timesyncd.service. addgroup: The group `systemd-journal' already exists as a system group. Exiting. # configuration of systemd while upgrading the chroot with the package to be tested being installed from jessie to stretch Setting up systemd (227-2) ... Installing new version of config file /etc/dbus-1/system.d/org.freedesktop.login1.conf ... Installing new version of config file /etc/dbus-1/system.d/org.freedesktop.systemd1.conf ... Installing new version of config file /etc/pam.d/systemd-user ... Installing new version of config file /etc/systemd/bootchart.conf ... Installing new version of config file /etc/systemd/journald.conf ... Installing new version of config file /etc/systemd/logind.conf ... Installing new version of config file /etc/systemd/resolved.conf ... Installing new version of config file /etc/systemd/system.conf ... Installing new version of config file /etc/systemd/timesyncd.conf ... Installing new version of config file /etc/systemd/user.conf ... Created symlink from /etc/systemd/system/sysinit.target.wants/systemd-timesyncd.service to /lib/systemd/system/systemd-timesyncd.service. addgroup: The group `systemd-journal' already exists as a system group. Exiting. Removing obsolete conffile /etc/dbus-1/system.d/org.freedesktop.machine1.conf ... # error while comparing the chroots (after removing the package to be tested + dependencies) 1m19.7s ERROR: FAIL: After purging files have disappeared: /etc/dbus-1/system.d/org.freedesktop.machine1.conf.dpkg-remove not owned /etc/systemd/system/halt.target.wants/ not owned /etc/systemd/system/halt.target.wants/hwclock-save.service -> /lib/systemd/system/hwclock-save.service not owned /etc/systemd/system/poweroff.target.wants/ not owned /etc/systemd/system/poweroff.target.wants/hwclock-save.service -> /lib/systemd/system/hwclock-save.service not owned /etc/systemd/system/reboot.target.wants/ not owned /etc/systemd/system/reboot.target.wants/hwclock-save.service -> /lib/systemd/system/hwclock-save.service not owned So it's actually wrong in the upgrade of the reference chroot and correct in the "real" upgrade test where these files correctly "disappear". But since there are only about 40 of these "failures", this implies that all other tests that were run since this bug got "activated" by some trigger stuff somewhere (it was lingering in dpkg for a long time) are actually buggy since both the reference chroot upgrade *and* the real upgrade have run the postinst incorrectly in the same way (and piuparts did not complain). I haven't done a full recheck on jessie2stretch, but all packages that migrate to testing get checked immediately (there are 1700 new logs from just the last week, that did not show any error and therefore are actually hit by this bug.) Since this error manifests in many piuparts tests (by not showing an error), I assume that the same can happen in some real world upgrade scenarios and some systems that track testing or sid may have that stuff still around. For fixing this I would suggest: * wait for a fixed dpkg to appear in sid * upload a new version of systemd to sid that changes - systemd.postinst: the old-version of all post-jessie actions is bumped to the then current systemd version (rerunning these actions should be harmless if they were done previously) - systemd.maintscript: bump the old-version likewise - add a versioned Depends on the fixed dpkg (a Pre-Depends should not be neccessary since only the postinst requires to be run by the fixed dpkg) * before the fixed dpkg (and systemd) migrate to stretch we can verify the fix on jessie2stretch2sid upgrades (jessie2stretch will be broken and stretch2sid should fix it up). Removal of org.freedesktop.machine1.conf should be a good indicator. Andreas