Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[Bug] Plan executor produces delete+update on same Deployment UID, then retries stale plan indefinitely

Aperta
#353 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
48/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
go, kubernetes

Direzione di ricerca

Inizia in execplan.go tracciando la generazione e l'esecuzione del piano per la sequenza delete-then-update segnalata su un Deployment UID. Riproduci o testa il percorso di errore usando la sequenza di passaggi dell'issue; il lavoro è completo quando un piano non contiene entrambe le operazioni per lo stesso UID e un errore di esecuzione causa il calcolo di un nuovo piano a partire dallo stato corrente.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

need information
Summary

The plan executor in execplan.go can produce a reconciliation plan that contains both a "delete Deployment" and "update Deployment" step for the same k8s Deployment resource. The delete succeeds, then the update fails on a stale UID precondition. The controller retries the same plan indefinitely without recomputing from current
state.

Environment
  • Controller image: v1.5.x (exact TBD)
  • Kubernetes: EKS 1.30
  • Temporal: self-hosted (Cassandra-backed)
What happened

A helm release changed the desired image tag while an existing version was being sunset. The controller's reconcile plan included:

  1. deleting deployment for account-temporal-default-worker-17-235-1-9755 ✅
  2. deleted worker resource on version sunset (HPA) ✅
  3. updating deployment for account-temporal-default-worker-17-232-4-559b ✅
  4. updating deployment for account-temporal-default-worker-17-235-1-9755 ❌

Step 4 failed:

StorageError: invalid object, Code: 4, Key: /registry/deployments/.../account-temporal-default-worker-17-235-1-9755,
ResourceVersion: 0, AdditionalErrorMsg: Precondition failed: UID in precondition: be213a24-..., UID in object meta: ""

The controller retried this exact plan for ~3 hours. Restarting the controller produced zero reconcile activity for this TWD — it didn't re-enqueue or recompute.

Impact

The Worker Deployment's current build (17.235.1-9755) had its k8s Deployment deleted but was never recreated. Zero pods existed for the current version. All new workflows routed to it were stranded.

Proposed fix
  1. Plan generator should not emit both delete and update for the same Deployment UID in a single plan.
  2. On plan execution failure, recompute the plan from current state rather than retrying the stale plan.
Lingua principale
Go
Stelle
197
Fork
79
Merge medio
3g 2h
PR unite (30g)
31

Preparare l'ambiente

  • Include un Dockerfile o un file Docker Compose
  • Nessun modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di temporalio/temporal-worker-controller

Tutte le issue di temporalio/temporal-worker-controller

Issue simili

Altre issue su Go

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.