Prevent older Bodhi updates from superseding newer builds during stable pushes #13468

Open
opened 2026-08-12 05:04:31 +00:00 by gotmax23 · 1 comment
Member

Describe the issue

Supersedes: #13332

(Text partially Assisted-by: GPT-5 🙈 and heavily edited, but hopefully this is better than the old ticket)

Problem

Bodhi can allow conflicting updates for the same package to coexist in certain scenarios where the update obsoleting functionality doesn't work:

  • If the older update is locked/in a push [e.g., stuck in testing->stable because of a feature freeze]
  • If the older update has multiple packages attached to it [e.g., it comes from a sidetag]
  • If the older update is submitted to stable? [but not yet pushed to stable]

(https://github.com/fedora-infra/bodhi/issues/1266)

If conflicting updates move from testing to stable in the same push, a race condition can occur that allows an older build of a package to supersede a newer one. Long update freezes seem to increase the possibility of conflicting updates accumulating in the testing -> stable phase and causing this race when the feature freeze ends and updates starting getting pushed to stable all at once.

Observed during the initial Fedora 44 updates push:

  • python3.14-3.14.4-1.fc44 superseded python3.14-3.14.4-2.fc44, which contained security fixes (#13331)
  • ruby-build-20260327-2.fc44 superseded ruby-build-20260412-1.fc44 (#13332)

Solution?

The affected f44 builds were manually retagged last cycle, but the underlying problem remains.

Potential solutions this include updating Bodhi to make the checks stricter to prevent conflicting updates (https://github.com/fedora-infra/bodhi/issues/1266) or creating a separate releng process/script to identify these cases and retag the correct builds.

When do you need this? (YYYY/MM/DD)

Before the F45 freezes, ideally

When is this no longer needed or useful? (YYYY/MM/DD)

n/a

If we cannot complete this, what is the impact? [Dependencies/Blocker]

We'll continue to end up with update conflicts that have to be manually reconciled each cycle.

## Describe the issue <!-- Provide a clear and detailed description of the issue, task, or feature request. Include context, background information, and what you're trying to accomplish. If there is a related Bugzilla entry or other reference, link it here. --> Supersedes: https://forge.fedoraproject.org/releng/tickets/issues/13332 (Text partially Assisted-by: GPT-5 🙈 and heavily edited, but hopefully this is better than the old ticket) ### Problem Bodhi can allow conflicting updates for the same package to coexist in certain scenarios where the update obsoleting functionality doesn't work: > - If the older update is locked/in a push [e.g., stuck in `testing->stable` because of a feature freeze] > - If the older update has multiple packages attached to it [e.g., it comes from a sidetag] > - If the older update is submitted to stable? [but not yet pushed to stable] (https://github.com/fedora-infra/bodhi/issues/1266) If conflicting updates move from testing to stable in the same push, a race condition can occur that allows an older build of a package to supersede a newer one. Long update freezes seem to increase the possibility of conflicting updates accumulating in the `testing -> stable` phase and causing this race when the feature freeze ends and updates starting getting pushed to stable all at once. Observed during the initial Fedora 44 updates push: - `python3.14-3.14.4-1.fc44` superseded `python3.14-3.14.4-2.fc44`, which contained security fixes (https://forge.fedoraproject.org/releng/tickets/issues/13331) - `ruby-build-20260327-2.fc44` superseded `ruby-build-20260412-1.fc44` (https://forge.fedoraproject.org/releng/tickets/issues/13332) ### Solution? The affected f44 builds were manually retagged last cycle, but the underlying problem remains. Potential solutions this include updating Bodhi to make the checks stricter to prevent conflicting updates (https://github.com/fedora-infra/bodhi/issues/1266) or creating a separate releng process/script to identify these cases and retag the correct builds. ## When do you need this? (YYYY/MM/DD) <!-- Provide the date by which this issue should be completed or addressed. If no specific deadline, write "ASAP" or "N/A" --> Before the F45 freezes, ideally ## When is this no longer needed or useful? (YYYY/MM/DD) <!-- Provide a sunset date after which this issue becomes obsolete or is no longer needed. If not applicable, write "N/A" --> n/a ## If we cannot complete this, what is the impact? [Dependencies/Blocker] <!-- Describe the consequences or impact if this issue cannot be addressed. What is at risk or what would be affected? --> We'll continue to end up with update conflicts that have to be manually reconciled each cycle.
Owner

I still think the bodhi change is the best fix... FWIW.

I still think the bodhi change is the best fix... FWIW.
patrikp added this to the Backlog project 2026-08-17 11:57:12 +00:00
Sign in to join this conversation.
No milestone
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
releng/tickets#13468
No description provided.