Check version of cruft removal item

If the cruft removal item has a different version than the binary currently in
testing, then the cruft item was replaced since it was added, or it was added
in error. In this case, the item should not be processed.

Signed-off-by: Ivo De Decker <ivodd@debian.org>
ubuntu/rebased
Ivo De Decker 5 years ago
parent e3af8993be
commit 7fdbfcbeb2

@ -878,10 +878,15 @@ class Britney(object):
target_suite.check_suite_source_pkg_consistency('iter_packages after commit') target_suite.check_suite_source_pkg_consistency('iter_packages after commit')
nuninst_last_accepted = nuninst_after nuninst_last_accepted = nuninst_after
for cruft_item in new_cruft: for cruft_item in new_cruft:
_, updates, rms, _ = mm.compute_groups(cruft_item) try:
result = (cruft_item, frozenset(updates), frozenset(rms)) _, updates, rms, _ = mm.compute_groups(cruft_item)
group_info[cruft_item] = result result = (cruft_item, frozenset(updates), frozenset(rms))
worklist.extend([x] for x in new_cruft) 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) rescheduled_packages.extend(maybe_rescheduled_packages)
maybe_rescheduled_packages.clear() maybe_rescheduled_packages.clear()
else: else:

@ -112,6 +112,12 @@ class MigrationManager(object):
else: else:
assert item_package in binaries_t[item.architecture] assert item_package in binaries_t[item.architecture]
pkg_id = binaries_t[item.architecture][item_package].pkg_id 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 source_name = binaries_t[item.architecture][item_package].source
rms = {pkg_id} rms = {pkg_id}
smoothbins = set() smoothbins = set()

Loading…
Cancel
Save