Rolling upgrade: GitHub default-branch adoption can miss the first sync or an older replica's PATCH to main (#599 follow-up)
Maintainer antworten meist innerhalb von 1 Tag
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 20/100
Rechercherichtung
Read PR #607 and the two rolling-upgrade cases described here, then inspect the relevant sync and PATCH handling code and its tests. Decide how to prevent both missed adoption and an older replica's explicit PATCH from being overwritten; verify the behavior for each case. The issue names no source files or test paths, so locate them from the PR.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Problem
PR #607 adopts the GitHub default branch at a successful sync of a GitHub sync repo whose create omitted default_branch (#599). During a rolling upgrade from a release without this rule, two cases miss the upstream behavior. http-api.md documents both, and the PR's Codex round 1 raised both.
- A sync that an older worker runs does not adopt. The flag stays set, so the next sync by an upgraded worker adopts. Until that sync, the repo is on
main, and with no further trigger it stays there. - An older replica's
PATCH /repotomainbefore that sync writes nothing that differs from the create's placeholdermain. The next sync by an upgraded worker then replaces the caller's explicitmainwith the GitHub branch. A PATCH to any other branch is kept, because the adopt write requires the repo to still be onmain.
Possible fixes
- A fleet-version gate, like
OPENSTORAGE_SYNC_STEAL_LEGACY: an operator assertion that no older replica remains before creates set the flag. - A reconciliation sweep that schedules a sync for flagged repos with
success_count > 0. This covers case 1 only. - Deploy sequencing in the release notes: upgrade every replica before accepting GitHub sync creates.
Trigger
Act on this issue at the first report of a GitHub sync repo left on main after a rolling upgrade, or when a release that ships #607 is prepared (decide then whether the release notes need a sequencing note).
Refs #599
Generated with xum • Model: anthropic:claude-opus-5-5 • Thinking: high
- Vorherrschende Sprache
- Go
- Sterne
- 0
- Forks
- 0
- Ø Merge
- 6 Std. 16 Min.
- Gemergte PRs (30 T.)
- 243
Entwicklungsumgebung
- Enthält ein Dockerfile oder eine Docker-Compose-Datei
- Keine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus coder/openstorage
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
coder/openstorage#807 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 49/100
coder/openstorage#806 ·
Maintainer antworten meist innerhalb von 1 Tag
-
api: merge/preview ignores strategy, squash and allow_unrelated_historiesEvtl. vergeben @ThomasK33 hat das heute übernommen. Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
coder/openstorage#805 ·
Maintainer antworten meist innerhalb von 1 Tag
-
githttp: +import remote serves clone and fetch, and its pushes stay out of the normal branch listEvtl. vergeben @ThomasK33 hat das heute übernommen. Offen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 20/100
coder/openstorage#804 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
api: branches/create ignores expected_target_sha, so a guarded create or move can overwrite a branchEvtl. vergeben @ThomasK33 hat das heute übernommen. Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 35/100
coder/openstorage#803 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in coder/openstorage
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
coder/coder-logstream-kube#255 · 1 Kommentar ·
-
kind/features
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 73/100
TencentBlueKing/bk-nodemgr#3991 ·
Maintainer antworten meist innerhalb von 1 Tag
-
meta
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
last9/last9-mcp-server#554 ·
Maintainer antworten meist innerhalb von 1 Tag