diff --git a/britney.py b/britney.py index 2cf39b7..4dcf1d2 100755 --- a/britney.py +++ b/britney.py @@ -878,10 +878,15 @@ class Britney(object): target_suite.check_suite_source_pkg_consistency('iter_packages after commit') nuninst_last_accepted = nuninst_after for cruft_item in new_cruft: - _, updates, rms, _ = mm.compute_groups(cruft_item) - result = (cruft_item, frozenset(updates), frozenset(rms)) - group_info[cruft_item] = result - worklist.extend([x] for x in new_cruft) + try: + _, updates, rms, _ = mm.compute_groups(cruft_item) + result = (cruft_item, frozenset(updates), frozenset(rms)) + group_info[cruft_item] = result + worklist.append([cruft_item]) + except MigrationConstraintException as e: + output_logger.info( + " got exception adding cruft item %s to list: %s" % + (cruft_item.uvname, repr(e))) rescheduled_packages.extend(maybe_rescheduled_packages) maybe_rescheduled_packages.clear() else: diff --git a/britney2/migration.py b/britney2/migration.py index cb33b77..becbfcc 100644 --- a/britney2/migration.py +++ b/britney2/migration.py @@ -112,6 +112,12 @@ class MigrationManager(object): else: assert item_package in binaries_t[item.architecture] pkg_id = binaries_t[item.architecture][item_package].pkg_id + binary, ver, parch = pkg_id + if ver != item.version: + raise MigrationConstraintException( + "trying cruft removal item %s, while %s has %s/%s on %s" % ( + item, target_suite.name, + binary, ver, parch)) source_name = binaries_t[item.architecture][item_package].source rms = {pkg_id} smoothbins = set()