[Bug] set-ramping-version and set-current-version return success without persisting state when backing system workflow is damaged
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
- 45/100
- Tipo di issue
- Bug
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- go
- Ambito
- backend, cli, distributed-systems
Direzione di ricerca
Inizia riproducendo i comandi set-ramping-version, set-current-version e delete-version elencati su un workflow temporal-sys-worker-deployment divergente, quindi confronta le relative risposte di successo con worker deployment describe. Leggi il plan executor delete+update issue (#353) correlato e determina se il comportamento appartiene a questo controller o al server Temporal. Il lavoro è completato quando ogni operazione persiste lo stato richiesto oppure segnala un errore invece di restituire un falso successo.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
When a Worker Deployment's backing system workflow (temporal-sys-worker-deployment:*) is in a damaged or divergent state, CLI operations (set-ramping-version --delete, set-current-version --unversioned, delete-version) return success messages but don't actually persist state changes. describe shows identical values and unchanged timestamps before and after.
Note: This may be a Temporal server bug rather than a controller bug, but filing here since it was discovered in the context of the controller's reconcile failures and affects the same recovery workflow.
Environment
- Temporal CLI: latest (as of 2026-05-27)
- Temporal server: self-hosted (Cassandra-backed)
- Controller image: v1.5.x
What happened
After the controller's plan executor bug left a Worker Deployment in a corrupted state (see: plan executor delete+update bug), we attempted manual cleanup:
$ temporal worker deployment set-ramping-version --deployment-name '...' --build-id '17.233.1-497c' --delete --yes
Successfully set the ramping worker deployment version
$ temporal worker deployment describe --name '...' --namespace account
RampingVersionBuildID: 17.233.1-497c # unchanged
RampingVersionPercentage: 50 # unchanged
RampingVersionPercentageChangedTime: 4 days ago # unchanged
This pattern reproduced across multiple operations:
set-ramping-version --delete→ "Successfully set" → no changeset-ramping-version --percentage 0→ "Successfully set" → no changeset-current-version --unversioned→ "Successfully set" → no changedelete-version→ "Successfully deleted" → version still present in describe
The deployment had no active pollers (workers had been sunset). The --allow-no-pollers and --ignore-missing-task-queues flags were used.
The system workflow (temporal-sys-worker-deployment:*) existed in the namespace and was reachable via temporal workflow describe, but its internal state was divergent from what deployment describe reported.
Recovery
Deleted the backing system workflow directly:
temporal workflow delete
--workflow-id 'temporal-sys-worker-deployment:'
--namespace account
This scrubbed the deployment from worker deployment list and allowed clean re-registration.
Expected behavior
Operations should either persist the change or return an error. Returning success without mutation is dangerous during incident recovery.
- Lingua principale
- Go
- Stelle
- 197
- Fork
- 82
- Merge medio
- 3g 40m
- PR unite (30g)
- 35
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Nessuna 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 temporalio/temporal-worker-controller
-
[Feature Request] Configure temporal-worker-controller to use hostNetworkForse già presa @josh-ferrell l’ha presa 3 giorni fa. Apertaenhancement
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
temporalio/temporal-worker-controller#680 ·
I maintainer di solito rispondono entro 1 giorno
-
[Feature Request] Helm chart: support topologySpreadConstraints on the controller DeploymentForse già presa @akolacz l’ha presa 11 giorni fa. Apertahelm
temporalio/temporal-worker-controller#658 · 1 reazione · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
rbac
Difficoltà 4/5 3-5 giorni Idoneità per principianti 48/100
temporalio/temporal-worker-controller#654 ·
I maintainer di solito rispondono entro 1 giorno
-
Bug: v1.6's delete-protection finalizer is never removed from migrated TemporalWorkerDeployment/TemporalConnection, so they stay Terminating after the v1.7 migrationForse già presa @nmechack27 l’ha presa 18 giorni fa. Aperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 57/100
temporalio/temporal-worker-controller#644 · 2 commenti · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
AI agent skillsAperta
Difficoltà 3/5 1-2 giorni Idoneità per principianti 68/100
temporalio/temporal-worker-controller#633 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di temporalio/temporal-worker-controller
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
cloudevents/sdk-go#1346 ·
-
needs-triage
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
kubernetes/cloud-provider-aws#1517 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
agent-butler-finding chore
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
jordansmall/spindrift#6221 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 3 giorni