Story #8250
closedAs a user, all advisory conflicts are resolved automagically
100%
Description
Motivation¶
There are situations when Pulp raises an AdvisoryConflict
exception and fails a sync or copy task.
In such cases, manual resolution is needed.
It's neither easy, nor straightforward in some cases for user to resolve it.
Situation 1
Updated date and version are the same but pkglists differ (and one is not a subset or superset of the other).
E.g. It's likely a mistake in one of the pkglists.
Manual resolution:
- look at both and decide which one to keep
- if the "bad" one is in Pulp, remove it from Pulp (remove from every repo version and run orphan cleanup)
- if the "bad" one is in a remote source, contact remote source and ask them to fix it
Situation 2
Updated dates are different but pkglists have no intersection at all.
E.g. It's either and attempt to combine content from incompatible repos (RHEL6-main and RHEL7 debuginfo), or someone created a completely different advisory with already used id.
Manual resolution:
- look at both and decide what's wrong
- maybe pick one if it works for user's case (pick one = either remove from Pulp or do not add a remote one)
- maybe change what is added to a repo if it was a mistake (e.g. to combine RHEL6-main and RHEL7-debuginfo)
Proposed solution¶
Since Pulp cannot safely resolve conflicts in the situations described earlier, any automatic resolution would be at user's own risk.
Introduce a global configuration ALLOW_UNSAFE_ADVISORY_CONFLICT_RESOLUTION
, which defaults to False
.
When it is set to True
:
- for Situation 1, Pulp will produce a new advisory content unit with merged pkglists
- for Situation 2, Pulp will pick a newer one
This is not on a roadmap, please leave a comment if you need this feature and what is your situation/use case.
Updated by adam.winberg@smhi.se almost 4 years ago
I just encountered 'Situation 2', trying to copy erratas from RHEL8 repos to my frozen repos. For some reason a couple of old erratas had been updated from Red Hat with a new version, but copying them to my frozen repos failed since the pkglist in my frozen repos was empty for this advisory. The frozen repos are migrated from pulp2 which may be why the pkglist was empty.
So when using a pulp3 environment fed by 2to3-migration, it makes sense to me to assume that the newer advisory is the correct one since the error is most likely caused by bad metadata in the migrated repo.
Updated by pulpbot over 3 years ago
- Status changed from NEW to POST
Added by ggainey over 3 years ago
Updated by ggainey over 3 years ago
- Status changed from POST to MODIFIED
- % Done changed from 0 to 100
Applied in changeset 651ee795427d2d0fdcf17f47d63d2bec1359e872.
Updated by dalley over 3 years ago
- Status changed from MODIFIED to CLOSED - CURRENTRELEASE
Added ALLOW_AUTOMATIC_UNSAFE_ADVISORY_CONFLICT_RESOLUTION.
Default is False.
closes #8250