bug: failed sync controller prevents subsequent startup retries
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 20/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Ferma
- Stack tecnologico
- go
- Ambito
- distributed-systems
Direzione di ricerca
Review the DynamicMultiClusterManager.runnables, syncCancels, and ensureSyncController entry points to understand controller startup and cache sync timeout handling. Reproduce a cache sync timeout, then verify synchronization resumes after API access is restored without restarting the agent.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Describe the bug
When a sync controller fails during startup, it is removed from DynamicMultiClusterManager.runnables, but its entry remains in the sync manager's syncCancels map.
Subsequent calls to ensureSyncController() for the same PublishedResource UID/resourceVersion find this stale entry and return an empty result and nil error without creating a replacement controller.
The controller has stopped, but the sync manager still considers it present.
Steps To Reproduce
- Run the agent with an enabled PublishedResource and verify that an annotation update on an existing object in kcp propagates to the service cluster.
- Restart the agent with a temporary proxy that returns HTTP 503 for LIST/WATCH requests to that resource in the service cluster. Keep API discovery and other API requests available.
- Keep those requests blocked for longer than the controller's cache sync timeout. In this test, requests were blocked for 180 seconds.
- Observe
Controller failed to startwith a cache sync timeout error. - Restore API access without restarting the agent or modifying the PublishedResource.
- Update the annotation on the same object in kcp.
- Observe that the update does not propagate to the service cluster and no replacement sync controller is created. Confirm that the PublishedResource's resourceVersion is unchanged.
- Restart the agent and observe that the pending annotation update propagates.
Expected Behaviour
When a sync controller fails during startup, the sync manager should clear the failed controller's registration and retry startup with backoff.
Once API access is restored, synchronization should resume without restarting the agent or modifying the PublishedResource.
Additional Context
Related: #182 concerns old controllers remaining active after PublishedResource updates. This report concerns failed controllers preventing subsequent startup retries.
- Lingua principale
- Go
- Stelle
- 25
- Fork
- 31
- Merge medio
- 5g 18h
- PR unite (30g)
- 1
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di kcp-dev/api-syncagent
-
kind/bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 74/100
kcp-dev/api-syncagent#163 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
kcp-dev/api-syncagent#161 ·
-
bug: dangling schema in an APIExport is neither removed nor reportedForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
kcp-dev/api-syncagent#188 · 1 commento ·
-
kind/feature
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
kcp-dev/api-syncagent#186 · 1 commento · 1 reazione ·
-
bug: PublishedResource updates leave previous sync controllers activeForse di nuovo libera @adoi l’ha presa 85 giorni fa e non c’è nessuna pull request aperta. Apertakind/bug
kcp-dev/api-syncagent#182 · 1 commento · 1 assegnatario ·
Tutte le issue di kcp-dev/api-syncagent
Issue simili
-
darwin zsh
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
carapace-sh/carapace-bin#3846 ·
I maintainer di solito rispondono entro 1 giorno
-
appplication - is a typo?Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 70/100
golang-app/ecommerce#179 ·
I maintainer di solito rispondono entro 1 giorno
-
Simulator process crashes (nil pointer panic) when the dataset returns an errorForse già presa @EugeneVon l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
llm-d/llm-d-inference-sim#772 ·
I maintainer di solito rispondono entro 1 giorno
-
refactor: decode numchildren with a lenient int type instead of a hand-written xProp.UnmarshalXMLAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
crazy-goat/xdbg#125 ·
I maintainer di solito rispondono entro 1 giorno
-
150 points ci complexity:medium drips-wave help wanted medium
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
sorotrail/SoroBeacon#449 ·
I maintainer di solito rispondono entro 1 giorno