Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

emerge: backtrack consistently regardless of --fetchonly #1236

Conversation

zmedico
Copy link
Member

@zmedico zmedico commented Jan 15, 2024

Make the _accept_blocker_conflicts method always return True when backtracking is enabled, so that backtracking results will be identical regardless of options that _accept_blocker_conflicts treats specially. This way, conflicts will only be accepted when backtracking is disabled or all backtracking tries have been exhausted. Make --nodeps imply --backtrack=0, since backtracking is only useful with dependencies.

Make _eliminate_rebuilds return early if there are slot conflicts, since the merge list is invalid anyway, and its possible that state inconsistencies could trigger unexpected exceptions as in bug 922038. Make the KeyError from bug 922038 a warning, and include relevant information to help trace the inconsistency back to the _eliminate_rebuilds method or some other source like _solve_non_slot_operator_slot_conflicts.

Bug: https://bugs.gentoo.org/922038

@zmedico zmedico requested a review from thesamesam January 15, 2024 23:46
@zmedico zmedico force-pushed the bug_922038_backtrack_consistently_regardless_of_fetchonly branch from 75fd9f7 to 7c36b2a Compare January 16, 2024 15:59
Make the _accept_blocker_conflicts method always return
True when backtracking is enabled, so that backtracking
results will be identical regardless of options that
_accept_blocker_conflicts treats specially. This way,
conflicts will only be accepted when backtracking is
disabled or all backtracking tries have been exhausted.
Make --nodeps imply --backtrack=0, since backtracking
is only useful with dependencies.

Make _eliminate_rebuilds return early if there are
slot conflicts, since the merge list is invalid anyway,
and its possible that state inconsistencies could
trigger unexpected exceptions as in bug 922038. Make
the KeyError from bug 922038 a warning, and include
relevant information to help trace the inconsistency
back to the _eliminate_rebuilds method or some other
source like  _solve_non_slot_operator_slot_conflicts.

Bug: https://bugs.gentoo.org/161422
Bug: https://bugs.gentoo.org/607252
Bug: https://bugs.gentoo.org/675748
Bug: https://bugs.gentoo.org/922038
Signed-off-by: Zac Medico <[email protected]>
@zmedico zmedico force-pushed the bug_922038_backtrack_consistently_regardless_of_fetchonly branch from 7c36b2a to a5078e5 Compare January 16, 2024 16:03
@gentoo-bot gentoo-bot merged commit a5078e5 into gentoo:master Jan 16, 2024
11 checks passed
@zmedico zmedico deleted the bug_922038_backtrack_consistently_regardless_of_fetchonly branch January 16, 2024 16:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants