Begrens en reconcile alle HTTP-mutaties tijdens releasepublicatie #2312
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
release-blocker
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#2312
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Probleem
De publicatiejob heeft geen harde tijdslimiet en meerdere release-API- en Debian-calls hebben geen connect- of responstime-out. Een endpoint dat wel TCP accepteert maar niet antwoordt kan de job uren laten hangen. Wanneer een server een mutatie accepteert maar de verbinding voor het antwoord verbreekt, rapporteert de run rood terwijl de externe toestand al gewijzigd kan zijn.
Bewijs
Gewenst gedrag
Regressietoets
Test een blackhole-endpoint en een endpoint dat de mutatie opslaat maar vóór het antwoord verbreekt. Beide routes eindigen begrensd en zonder dubbele publicatie.
Release v0.6.14 leverde op 2026-10-06 een nieuw concreet geval: de merge-POST van PR #2293 eindigde met curl exit 56 (verbinding tijdens ontvangst verbroken). De operatie was niet uitgevoerd, maar het script wist dat pas niet: het stopte alleen. Forgejo meldde daarna PR open, merged=false, head
b97437904en mergeable=false. Voor merge moet de reconciliatie na iedere transportfout dus PR-state, exact head_commit_id en aanwezigheid op main toetsen; alleen bij bewezen niet-uitgevoerd mag een begrensde retry volgen. Daarnaast mag bij mergeable=false überhaupt geen POST volgen.