Bug#814240: systemd triggers break upgrades within unstable

Guillem Jover guillem at debian.org
Mon Feb 15 09:48:31 GMT 2016


Hi!

On Thu, 2016-02-11 at 00:08:12 +0100, Michael Biebl wrote:
> Somehow this looks like an issue in dpkg, if it triggers a package which
> is in an inconsistent state.

After a very quick look it does not seem to me to be an issue in either
systemd nor dpkg, see below.

> But maybe we just made a mistake in our use of triggers in systemd:
>  https://anonscm.debian.org/cgit/pkg-systemd/systemd.git/tree/debian/systemd.triggers
>  https://anonscm.debian.org/cgit/pkg-systemd/systemd.git/tree/debian/systemd.postinst#n15

These look fine.

> Am 09.02.2016 um 14:12 schrieb Zack Weinberg:
> > Package: systemd
> > Version: 228-6
> > Severity: normal
> > 
> > libpam-systemd, systemd, and libsystemd0 have = dependencies on each
> > other.  This invariant can be temporarily violated in the middle of a
> > large upgrade, and AIUI that is normal and to be expected.  However,
> > systemd has several dpkg triggers that can fire while the = dependencies
> > are violated, and when this happens, the entire upgrade bombs out.
> > Worse, one of those triggers seems to be armed and immediately fired *by
> > upgrading libsystemd0*, before dpkg has had a chance to upgrade systemd
> > proper, so this is guaranteed to happen any time the systemd packages
> > are upgraded.
> > 
> > It's possible to recover by manually installing the new versions of
> > libpam-systemd, systemd, and libsystemd0, but there's got to be some
> > way to make apt do the Right Thing, right?  (I don't really understand
> > triggers.  I thought they were supposed to postpone work until the *end*
> > of a large upgrade, but they seem to go off all the time in the middle.)
> > 
> > Example upgrade transcript:
> > 
> > # aptitude safe-upgrade
> > [...]
> > Extracting templates from packages: 100%
> > Preconfiguring packages ...
> > [...snip...]
> > (Reading database ... 289818 files and directories currently installed.)
> > Preparing to unpack .../linux-image-4.3.0-1-amd64_4.3.5-1_amd64.deb ...
> > Unpacking linux-image-4.3.0-1-amd64 (4.3.5-1) over (4.3.3-7) ...
> > Preparing to unpack .../archives/udev_228-6_amd64.deb ...
> > Unpacking udev (228-6) over (228-5) ...
> > Preparing to unpack .../libpam-systemd_228-6_amd64.deb ...
> > Unpacking libpam-systemd:amd64 (228-6) over (228-5) ...
> > Preparing to unpack .../libsystemd0_228-6_amd64.deb ...
> > Unpacking libsystemd0:amd64 (228-6) over (228-5) ...
> > Setting up libsystemd0:amd64 (228-6) ...
> > Processing triggers for libc-bin (2.21-7) ...
> > dpkg: dependency problems prevent processing triggers for systemd:
> >  systemd depends on libsystemd0 (= 228-5); however:
> >   Version of libsystemd0:amd64 on system is 228-6.
> > 
> > dpkg: error processing package systemd (--triggers-only):
> >  dependency problems - leaving triggers unprocessed
> > Processing triggers for man-db (2.7.5-1) ...
> > Errors were encountered while processing:
> >  systemd
> > E: Sub-process /usr/bin/dpkg returned an error code (1)

Well it does not seem like aptitude even tried to unpack systemd
itself. And then it was requested via --triggers-only to process
triggers, so any attempt to get the dependencies sorted out will fail.

> > Failed to perform requested operation on package.  Trying to recover:
> > Setting up libquadmath0:amd64 (5.3.1-8) ...
> > Setting up linux-image-4.3.0-1-amd64 (4.3.5-1) ...
> > [...snip...]
> > Setting up libobjc4:amd64 (5.3.1-8) ...
> > dpkg: dependency problems prevent configuration of libpam-systemd:amd64:
> >  libpam-systemd:amd64 depends on systemd (= 228-6); however:
> >   Version of systemd on system is 228-5.
> > 
> > dpkg: error processing package libpam-systemd:amd64 (--configure):
> >  dependency problems - leaving unconfigured
> > Setting up libx32gcc1 (1:5.3.1-8) ...
> > [...snip...]
> > Setting up udev (228-6) ...
> > addgroup: The group `input' already exists as a system group. Exiting.
> > update-initramfs: deferring update (trigger activated)
> > dpkg: dependency problems prevent processing triggers for systemd:
> >  systemd depends on libsystemd0 (= 228-5); however:
> >   Version of libsystemd0:amd64 on system is 228-6.
> > 
> > dpkg: error processing package systemd (--configure):
> >  dependency problems - leaving triggers unprocessed
> > Setting up libx32asan2 (5.3.1-8) ...
> > [..snip...]
> > Processing triggers for libc-bin (2.21-7) ...
> > Processing triggers for initramfs-tools (0.122) ...
> > update-initramfs: Generating /boot/initrd.img-4.3.0-1-amd64
> > Errors were encountered while processing:
> >  libpam-systemd:amd64
> >  systemd
> > Press Return to continue.
> > 
> > # aptitude safe-upgrade
> > Performing actions...
> > Reading changelogs... Done
> > Extracting templates from packages: 100%
> > Preconfiguring packages ...
> > (Reading database ... 289818 files and directories currently installed.)
> > Preparing to unpack .../acl_2.2.52-3_amd64.deb ...
> > Unpacking acl (2.2.52-3) over (2.2.52-2) ...
> > Preparing to unpack .../libacl1_2.2.52-3_amd64.deb ...
> > Unpacking libacl1:amd64 (2.2.52-3) over (2.2.52-2) ...
> > Setting up libacl1:amd64 (2.2.52-3) ...
> > Processing triggers for libc-bin (2.21-7) ...
> > dpkg: dependency problems prevent processing triggers for systemd:
> >  systemd depends on libsystemd0 (= 228-5); however:
> >   Version of libsystemd0:amd64 on system is 228-6.
> > 
> > dpkg: error processing package systemd (--triggers-only):
> >  dependency problems - leaving triggers unprocessed
> > Processing triggers for man-db (2.7.5-1) ...
> > Errors were encountered while processing:
> >  systemd
> > E: Sub-process /usr/bin/dpkg returned an error code (1)
> > Failed to perform requested operation on package.  Trying to recover:
> > dpkg: dependency problems prevent configuration of libpam-systemd:amd64:
> >  libpam-systemd:amd64 depends on systemd (= 228-6); however:
> >   Version of systemd on system is 228-5.
> > 
> > dpkg: error processing package libpam-systemd:amd64 (--configure):
> >  dependency problems - leaving unconfigured
> > dpkg: dependency problems prevent processing triggers for systemd:
> >  systemd depends on libsystemd0 (= 228-5); however:
> >   Version of libsystemd0:amd64 on system is 228-6.
> > 
> > dpkg: error processing package systemd (--configure):
> >  dependency problems - leaving triggers unprocessed
> > Setting up acl (2.2.52-3) ...
> > Errors were encountered while processing:
> >  libpam-systemd:amd64
> >  systemd
> > Press Return to continue.
> > 
> > # dpkg -i /var/cache/apt/archives/*systemd*_228-6_amd64.deb
> > (Reading database ... 289815 files and directories currently installed.)
> > Preparing to unpack .../libpam-systemd_228-6_amd64.deb ...
> > Unpacking libpam-systemd:amd64 (228-6) over (228-6) ...
> > Preparing to unpack .../libsystemd0_228-6_amd64.deb ...
> > Unpacking libsystemd0:amd64 (228-6) over (228-6) ...
> > Preparing to unpack .../systemd_228-6_amd64.deb ...
> > Unpacking systemd (228-6) over (228-5) ...
> > Preparing to unpack .../systemd-sysv_228-6_amd64.deb ...
> > Unpacking systemd-sysv (228-6) over (228-5) ...
> > Setting up libsystemd0:amd64 (228-6) ...
> > Setting up systemd (228-6) ...
> > addgroup: The group `systemd-journal' already exists as a system group. Exiting.
> > Setting up systemd-sysv (228-6) ...
> > Setting up libpam-systemd:amd64 (228-6) ...
> > Processing triggers for man-db (2.7.5-1) ...
> > Processing triggers for dbus (1.10.6-1) ...
> > Processing triggers for libc-bin (2.21-7) ...

Right, as long as systemd is not unpacked no further progress can be
made, but that's not something that dpkg controls, it's how it gets
invoked by the frontend.

Thanks,
Guillem




More information about the Pkg-systemd-maintainers mailing list