Unlooping all the trigger loops!!!!!

Bug #1828639 reported by Brian Murray on 2019-05-10
188
This bug affects 95 people
Affects Status Importance Assigned to Milestone
dpkg (Ubuntu)
Status tracked in Eoan
Xenial
High
Unassigned
Bionic
High
Unassigned
Cosmic
High
Unassigned
Disco
High
Unassigned
Eoan
High
Unassigned

Bug Description

[Impact]
Quite a few bugs in triggers can cause distro upgrades to abort.

[Test case]
For cosmic -> disco, install ubuntu-mate-desktop and then upgrade.

For other releases, there might not be any test cases

We should at least run some upgrade tests for a system with ubuntu-desktop installed.

[Regression potential]
New trigger bugs could of course be caused by the changes.

[Original bug report]

Encountered when upgrading from cosmic to disco with ubuntu-mate-desktop installed.

ProblemType: Package
DistroRelease: Ubuntu 19.04
Package: libvlc-bin 3.0.6-1
ProcVersionSignature: Ubuntu 5.0.0-13.14-generic 5.0.6
Uname: Linux 5.0.0-13-generic x86_64
ApportVersion: 2.20.10-0ubuntu27
Architecture: amd64
Date: Fri May 10 22:48:10 2019
ErrorMessage: 90.8592:triggers looping, abandoned
Python3Details: /usr/bin/python3.7, Python 3.7.3, python3-minimal, 3.7.3-1
PythonDetails: /usr/bin/python2.7, Python 2.7.16, python-minimal, 2.7.16-1
SourcePackage: vlc
Title: package libvlc-bin 3.0.6-1 failed to install/upgrade: 90.8592:triggers looping, abandoned
UpgradeStatus: Upgraded to disco on 2019-05-10 (0 days ago)

Brian Murray (brian-murray) wrote :
tags: removed: need-duplicate-check
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in vlc (Ubuntu):
status: New → Confirmed
Julian Andres Klode (juliank) wrote :

I could verify this bug report in a lxd container and that dpkg 1.19.7 (not yet merged) fixes the issue.

Changed in vlc (Ubuntu):
status: Confirmed → Triaged
affects: vlc (Ubuntu) → dpkg (Ubuntu)
Changed in dpkg (Ubuntu Eoan):
importance: Undecided → High
Changed in dpkg (Ubuntu Disco):
status: New → Triaged
Changed in dpkg (Ubuntu Cosmic):
status: New → Triaged
Changed in dpkg (Ubuntu Bionic):
status: New → Triaged
Changed in dpkg (Ubuntu Xenial):
status: New → Triaged
Changed in dpkg (Ubuntu Xenial):
importance: Undecided → High
Changed in dpkg (Ubuntu Bionic):
importance: Undecided → High
Changed in dpkg (Ubuntu Cosmic):
importance: Undecided → High
Changed in dpkg (Ubuntu Disco):
importance: Undecided → High
Changed in dpkg (Ubuntu Bionic):
importance: High → Critical
importance: Critical → High
description: updated
tags: added: id-5cc1d062b6d1072e603f4c6e

cosmic is reaching eol in 8 days, removing that task.

summary: - package libvlc-bin 3.0.6-1 failed to install/upgrade: 90.8592:triggers
- looping, abandoned
+ Fixing all the triggers!
summary: - Fixing all the triggers!
+ Fixing all the trigger bugs!
no longer affects: dpkg (Ubuntu Cosmic)
Changed in dpkg (Ubuntu Eoan):
status: Triaged → Fix Committed
summary: - Fixing all the trigger bugs!
+ Unlooping all the trigger loops!!!!!
Changed in dpkg (Ubuntu Disco):
status: Triaged → In Progress
description: updated
Changed in dpkg (Ubuntu Bionic):
status: Triaged → In Progress
Julian Andres Klode (juliank) wrote :

SRUs uploaded for all releases. git branches in

https://code.launchpad.net/~juliank/ubuntu/+source/dpkg/+git/dpkg

with individual cherry-picked commits (git ubuntu import + cherry-picked commits from upstream git :D)

Changed in dpkg (Ubuntu Xenial):
status: Triaged → In Progress

Hello Brian, or anyone else affected,

Accepted dpkg into disco-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/dpkg/1.19.6ubuntu1.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested and change the tag from verification-needed-disco to verification-done-disco. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-disco. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in dpkg (Ubuntu Disco):
status: In Progress → Fix Committed
tags: added: verification-needed verification-needed-disco
Brian Murray (brian-murray) wrote :

Hello Brian, or anyone else affected,

Accepted dpkg into bionic-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/dpkg/1.19.0.5ubuntu2.2 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested and change the tag from verification-needed-bionic to verification-done-bionic. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-bionic. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in dpkg (Ubuntu Bionic):
status: In Progress → Fix Committed
tags: added: verification-needed-bionic
Changed in dpkg (Ubuntu Xenial):
status: In Progress → Fix Committed
tags: added: verification-needed-xenial
Brian Murray (brian-murray) wrote :

Hello Brian, or anyone else affected,

Accepted dpkg into xenial-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/dpkg/1.18.4ubuntu1.6 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested and change the tag from verification-needed-xenial to verification-done-xenial. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-xenial. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

All autopkgtests for the newly accepted dpkg (1.18.4ubuntu1.6) for xenial have finished running.
There have been regressions in tests triggered by the package. Please visit the sru report page and investigate the failures.

https://people.canonical.com/~ubuntu-archive/pending-sru.html#xenial

Hello Brian, or anyone else affected,

Accepted dpkg into cosmic-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/dpkg/1.19.0.5ubuntu5.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested and change the tag from verification-needed-cosmic to verification-done-cosmic. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-cosmic. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in dpkg (Ubuntu Cosmic):
status: New → Fix Committed
tags: added: verification-needed-cosmic

All autopkgtests for the newly accepted dpkg (1.19.0.5ubuntu2.2) for bionic have finished running.
There have been regressions in tests triggered by the package. Please visit the sru report page and investigate the failures.

https://people.canonical.com/~ubuntu-archive/pending-sru.html#bionic

All autopkgtests for the newly accepted dpkg (1.19.6ubuntu1.1) for disco have finished running.
There have been regressions in tests triggered by the package. Please visit the sru report page and investigate the failures.

https://people.canonical.com/~ubuntu-archive/pending-sru.html#disco

All autopkgtests for the newly accepted dpkg (1.19.0.5ubuntu5.1) for cosmic have finished running.
There have been regressions in tests triggered by the package. Please visit the sru report page and investigate the failures.

https://people.canonical.com/~ubuntu-archive/pending-sru.html#cosmic

Changed in dpkg (Ubuntu Cosmic):
importance: Undecided → High
Julian Andres Klode (juliank) wrote :

I just finished verifying the cosmic->disco upgrade (the reproducer). What is important:

- enable -proposed in your sources.list
- add below pinning for it
- install the proposed dpkg

Only then start the upgrade, so that you get a fixed dpkg before and after the upgrade.

Pinning:
# cat /etc/apt/preferences.d/dpkg
Package: dpkg
Pin: release *-proposed
Pin-Priority: 500

Package: *
Pin: release *-proposed
Pin-Priority: -1

tags: added: verification-done-cosmic
removed: verification-needed-cosmic
Julian Andres Klode (juliank) wrote :

autopkgtest regressions have been fixed except for

apport/xenial which is not a regression (needs a fix eventually to adjust for linux-signed changes)
kdeconnect/bionic which has a _very_ flaky test

So: autopkgtest-wise it's good to go, but need some more upgrade testing for releases other than cosmic -> disco.

Julian Andres Klode (juliank) wrote :

testing procedure:

For each test:
- multipass launch $release -d 10G
- Installed new dpkg from proposed
- Installed ubuntu-desktop
- Ran do-release-upgrade

the individual runs were:
- Installed xenial (1.18.4ubuntu1.6), upgraded to bionic (1.19.0.5ubuntu2.2)
- Installed bionic (1.19.0.5ubuntu2.2), upgraded to disco (1.19.6ubuntu1.1)

I tried upgrading all the way from xenial to eoan, but it broke down after the bionic->disco update which somehow went wrong in lxd snap transition somewhere or something.

disco->eoan WIP

tags: added: verification-done-bionic verification-done-xenial
removed: verification-needed-bionic verification-needed-xenial
Julian Andres Klode (juliank) wrote :

disco:

Installed disco 1.19.6ubuntu1.1, upgraded to eoan.

tags: added: verification-done verification-done-disco
removed: verification-needed verification-needed-disco

The verification of the Stable Release Update for dpkg has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package dpkg - 1.19.6ubuntu1.1

---------------
dpkg (1.19.6ubuntu1.1) disco; urgency=medium

  * Cherry-pick upstream fix for trigger loops (LP: #1828639):
    - dpkg: Split the trigger dependtry into two, the second of which will be
      the one checking trigger cycles when deferring trigger processing due to
      unsatisfiable dependencies. Closes: #928429

 -- Julian Andres Klode <email address hidden> Tue, 16 Jul 2019 14:32:06 +0200

Changed in dpkg (Ubuntu Disco):
status: Fix Committed → Fix Released
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package dpkg - 1.18.4ubuntu1.6

---------------
dpkg (1.18.4ubuntu1.6) xenial; urgency=medium

  * Cherry-pick upstream fixes for trigger loops (LP: #1828639)
    - dpkg: Negate tortoise_not_in_hare() function name and return value
    - dpkg: Initialize trigcyclenode's next member once
    - dpkg: Factor trigproc_new_cyclenode() out from check_trigger_cycle()
    - dpkg: Mark the package we are giving up on a trigger cycle as istobe normal
    - dpkg: Switch dependtry from an int to an enum
    - dpkg: Reset progress_bytrigproc once we have injected into the current iteration
    - dpkg: Split trigger processing types into required, try-queued and try-deferred
    - dpkg: Convert one trigger processing required type into the new try-queued
    - dpkg: Move trigproc cycle reset inside try-deferred conditional
    - dpkg: Introduce a new dependency try level for trigger processing
    - dpkg: Introduce a new dependency try level for trigger cycle checks

 -- Julian Andres Klode <email address hidden> Tue, 16 Jul 2019 14:57:11 +0200

Changed in dpkg (Ubuntu Xenial):
status: Fix Committed → Fix Released
Changed in dpkg (Ubuntu Eoan):
status: Fix Committed → Fix Released
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package dpkg - 1.19.0.5ubuntu2.2

---------------
dpkg (1.19.0.5ubuntu2.2) bionic; urgency=medium

  * Cherry-pick upstream fixes for trigger loops (LP: #1828639)
    - dpkg: Negate tortoise_not_in_hare() function name and return value
    - dpkg: Initialize trigcyclenode's next member once
    - dpkg: Factor trigproc_new_cyclenode() out from check_trigger_cycle()
    - dpkg: Mark the package we are giving up on a trigger cycle as istobe normal
    - dpkg: Switch dependtry from an int to an enum
    - dpkg: Reset progress_bytrigproc once we have injected into the current iteration
    - dpkg: Split trigger processing types into required, try-queued and try-deferred
    - dpkg: Convert one trigger processing required type into the new try-queued
    - dpkg: Move trigproc cycle reset inside try-deferred conditional
    - dpkg: Introduce a new dependency try level for trigger processing
    - dpkg: Introduce a new dependency try level for trigger cycle checks

 -- Julian Andres Klode <email address hidden> Tue, 16 Jul 2019 14:57:11 +0200

Changed in dpkg (Ubuntu Bionic):
status: Fix Committed → Fix Released
To post a comment you must log in.