Fix missing HeartBeatEvent after SubscribeRequest — action not re-activated on silo kill (MeshWeaver.SelfUpdate.Aks.Test fault-injection case, intermittent 2/5)

Chiusa
#6,048 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
42/100
Tipo di issue
Bug
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
csharp
Ambito
backend

Direzione di ricerca

Start by locating MeshNodeStreamCache and its heartbeat, subscription, and read-stream eviction paths; the report does not name source files or tests. Reproduce the two-silo fault-injection case with a 500 ms idle expiration and 100 ms sweep, then capture the reported address and ReadStreamEvictions during a failing run. Done means identifying and fixing why the action receives no heartbeat after SubscribeRequest, with the action re-activating after silo 1 is killed.

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

Descrizione

area:testing bug feedback sev:M

Moved from the fleet's private triage inbox (MeshWeaver.Feedback#80, filed 2026-09-29). Core owns it: MeshNodeStreamCache heartbeat is core.


Found while porting MeshWeaver.Plugins #2403 (stuck Roll Verify) onto core’s fault-injection harness (MeshWeaver#5879).

Setup (MeshWeaver.SelfUpdate.Aks.Test, not merged; kept out of Plugins PR test/fault-injection-cases): [PERSON_NAME] with 2 silos; a stand-in action type seeded with AddMeshNodes (content.state Running) under ResumeRoll/; its hub activated on silo 1 by a ping; [PERSON_NAME] started on silo 0 (Activated outcome, precondition: nothing armed on silo 0); MeshNodeStreamCacheOptions ReadStreamIdleExpiration 500 ms / sweep 100 ms on both silos; wait 3 s; Kill(silo 1); expect the action re-activated (WithInitialization) on silo 0.

Result: same configuration run 5 times: 2 RED (no re-activation within 36 s), 3 green. MESHWEAVER_MSG_TRACE in a red run: no HeartBeatEvent to the action at all after the resumer’s SubscribeRequest (08:09:38.63Z); in green runs HeartBeatEvent from hub=cache/ every 1 s, and the one after the kill re-activates the action. With the production idle release (10 min) the case passes even with the resumer’s hold removed (Take(1)), so under production settings the hold is not what re-activates within 10 min.

A reflection read of MeshNodeStreamCache.IsReadStreamLive on silo 0 just before the kill returned True in a green run; not measured in a red one.

NOT established: why the heartbeat is absent (entry evicted despite a live subscriber? sync stream keepAlive disposed? something else). A core two-silo probe holding via cache.GetStream and via hub.GetMeshNodeStream with the same short idle passed, but it also passed with TryMarkIdleEvicted ignoring live subscribers, so it does not discriminate. Next step: capture the [ADDRESS] plus the cache’s ReadStreamEvictions in a red run.

Where: no main node named in the feedback — the defect is in MeshWeaver core’s stream/heartbeat machinery (MeshNodeStreamCache), surfaced by the not-yet-merged MeshWeaver.SelfUpdate.Aks.Test fault-injection setup (port of MeshWeaver.Plugins #2403 onto core’s harness, MeshWeaver#5879).
Context: none provided with the feedback.
Origin: https://memex.systemorph.com/Feedback/_Submissions/fb-276983d586f67a26a7d258e006f93faf (submitted on memex.systemorph.com)

filed by the triage agent on behalf of claude-agent via systemorph-com

Lingua principale
C#
Stelle
12
Fork
5
Merge medio
5h 10m
PR unite (30g)
980

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 Systemorph/MeshWeaver

Tutte le issue di Systemorph/MeshWeaver

Issue simili

Altre issue su C#

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.