diff options
-rw-r--r-- | pym/_emerge/__init__.py | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/pym/_emerge/__init__.py b/pym/_emerge/__init__.py index aa2cbfdbf..9126fa9e0 100644 --- a/pym/_emerge/__init__.py +++ b/pym/_emerge/__init__.py @@ -12088,13 +12088,11 @@ def resume_depgraph(settings, trees, mtimedb, myopts, myparams, spinner, if isinstance(x, list) and \ tuple(x) not in unsatisfied_parents] - # It shouldn't happen, but if the size of mergelist - # does not decrease for some reason then the loop - # will be infinite. Therefore, if that case ever - # occurs for some reason, raise the exception to - # break out of the loop. + # If the mergelist doesn't shrink then this loop is infinite. if len(pruned_mergelist) == len(mergelist): - raise AssertionError("tight loop") + # This happens if a package can't be dropped because + # it's already installed, but it has unsatisfied PDEPEND. + raise mergelist[:] = pruned_mergelist dropped_tasks.update(unsatisfied_parents) del e, graph, traversed_nodes, \ |