Recover reconciles from recoverAbortedReconcileOnPodReady ignores readiness of service selector labels

Aperta
#2,106 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 2 giorni

@Tyagiquamar ci sta già lavorando.

Dal 18/10/2026.

  • #2108 di @Tyagiquamar — aperta

Valutazione

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

Direzione di ricerca

Start at the recoverAbortedReconcileOnPodReady path, which decides whether to restart a reconcile from pod readiness alone. Then check how the clickhouse.altinity.com/ready pod label is set and how the chop-generated service selector depends on it. Reproduce the 1-shard, 2-replica sequence from the issue. Done means a recovered reconcile no longer removes ready replicas from the service, and a test covers the aborted-then-ready case.

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

Descrizione

When an aborted reconcile triggers a recovery reconcile via recoverAbortedReconcileOnPodReady, it uses the pod readiness state, but does not check if the pod labels have clickhouse.altinity.com/ready=Yes.

The result is the chop-generated service might get into a state without any replicas selected despite at least one replica being available to serve queries.

Steps on what occurred in a 1-shard, 2-replica cluster:

  1. reconcile triggered
  2. 0-0 starts and completes reconciles
  3. 0-1 starts reconcile, label set clickhouse.altinity.com/ready=No and 0-1 is excluded from service.
  4. 0-1 times out and reconcile is aborted
  5. 0-1 pod became ready, but still remains excluded from service
  6. Since 0-1 pod is ready, reconcile recover triggers and starts with 0-0 first making both replicas removed from svc

Operator version: 0.27.4

Lingua principale
Go
Stelle
2.6k
Fork
588
Merge medio
4g 5h
PR unite (30g)
16

Preparare l'ambiente

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 Altinity/clickhouse-operator

Tutte le issue di Altinity/clickhouse-operator

Issue simili

Altre issue su Go

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.