Listeners do not re-attach post deletion without podrestart

Aperta
#445 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

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

Direzione di ricerca

Start by tracing how listener UIDs are assigned and how pod labels are matched to recreated listener services; the issue does not name specific files or tests. Reproduce the deletion and recreation scenario with a HiveCluster and a ClusterInternal listener, then check that the recreated service can reach the original ready pods without a pod restart.

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

Descrizione

type/bug
Affected Stackable version

all

Current and expected behavior

Current behaviour

Assume a HiveCluster using a listener class e.g. ClusterInternal. A HiveCluster get's created with a listener discovered by label and IP provisioned by a volumeMount at the STS level.

If a Listener service gets deleted e.g. by hand or by e.g. only updating listener-operator, a new listener service gets created, the products operator does not reconcile and thus although pods are ready it fails to be reached via the fresh listener service.

Cause

Whenever a listener is recreated, it comes with a new UID. Pod's are labeled with something like listener.stackable.tech/mnt.<uid> referencing the listener UID created for this pod. Those UIDs change when a listener restarts and the pod don't. This mismatch will cause the pod being unavailable through it's listener address while becoming healthy and available

Expected behaviour

Listeners should reattach to its original pod after restart.

Possible solution

Probably something like a label which doesn't contain the UID.

Additional context

No response

Environment

No response

Would you like to work on fixing this bug?

None

Lingua principale
Python
Stelle
9
Fork
3
Merge medio
1g 6h
PR unite (30g)
8

Preparare l'ambiente

  • Nessun Dockerfile né file Docker Compose
  • Ha un 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 stackabletech/listener-operator

Tutte le issue di stackabletech/listener-operator

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.