This is an automated email from the git hooks/post-receive script.

guillem pushed a commit to branch master
in repository dpkg.

View the commit online:
https://git.dpkg.org/cgit/dpkg/dpkg.git/commit/?id=d4f6b91fda91803b62972c186a81cd07edf300e4

commit d4f6b91fda91803b62972c186a81cd07edf300e4
Author: Guillem Jover <guil...@debian.org>
AuthorDate: Tue Nov 6 03:03:42 2018 +0100

    dpkg: Mark the package we are giving up on a trigger cycle as istobe normal
    
    Once we are giving up on a package that we will stop processing, we need
    to mark it as PKG_ISTOBE_NORMAL so that the dependency checks know they
    cannot expect this package to be processed anymore. Otherwise we might
    end up never detecting that we are not making progress, as we expect to
    process this package at a later point, when that will never happen
    anymore. This then would end up causing asserts in the process queue
    loop.
    
    Closes: #901127, #910819
---
 debian/changelog | 6 ++++++
 src/trigproc.c   | 1 +
 2 files changed, 7 insertions(+)

diff --git a/debian/changelog b/debian/changelog
index 6ed5cf035..574c02bee 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -26,6 +26,12 @@ dpkg (1.19.3) UNRELEASED; urgency=medium
   * vendor.mk: Add support for an improved dpkg_vendor_derives_from macro.
     Version the macros so that both can be used, and default the unversioned
     one to the version 0 macro.
+  * dpkg: Mark the package we are giving up on a trigger cycle as "istobe"
+    normal, so that the dependency checks know they cannot expect this package
+    to be processed anymore. Otherwise we ended up never detecting that we
+    were not making progress, as we expected to process this package at a later
+    point, when that would never happen anymore. This then was causing asserts
+    in the process queue loop. Closes: #901127, #910819
   * Perl modules:
     - Dpkg::Changelog::Debian: Preserve modelines at EOF. Closes: #916056
       Thanks to Chris Lamb <la...@debian.org> for initial test cases.
diff --git a/src/trigproc.c b/src/trigproc.c
index fa7af26ef..14b0814a6 100644
--- a/src/trigproc.c
+++ b/src/trigproc.c
@@ -352,6 +352,7 @@ check_trigger_cycle(struct pkginfo *processing_now)
                internerr("package %s in non-trigger state %s",
                          pkg_name(giveup, pnaw_always),
                          pkg_status_name(giveup));
+       giveup->clientdata->istobe = PKG_ISTOBE_NORMAL;
        pkg_set_status(giveup, PKG_STAT_HALFCONFIGURED);
        modstatdb_note(giveup);
        print_error_perpackage(_("triggers looping, abandoned"),

-- 
Dpkg.Org's dpkg

Reply via email to