Fix missing HeartBeatEvent after SubscribeRequest — action not re-activated on silo kill (MeshWeaver.SelfUpdate.Aks.Test fault-injection case, intermittent 2/5)
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 42/100
Research direction
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.
Written by the indexing model from the issue text.
Description
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
- Dominant language
- C#
- Stars
- 12
- Forks
- 5
- Avg merge
- 4h 15m
- Merged PRs (30d)
- 969
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Systemorph/MeshWeaver
-
ApiTokenService.RevokeToken posts its revocation SaveMeshNodeRequest from the mesh (router) hub instead of a node-operation hubPossibly taken A pull request linked to this issue is open or already merged. Openbug sev:M
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Systemorph/MeshWeaver#6026 · 4 comments ·
Maintainers usually reply within 1 day
-
bug sev:L
Difficulty 1/5 1-3 hours Newbie friendliness 76/100
Systemorph/MeshWeaver#6011 · 3 comments ·
Maintainers usually reply within 1 day
-
bug sev:L
Difficulty 4/5 3-5 days Newbie friendliness 45/100
Systemorph/MeshWeaver#6450 ·
Maintainers usually reply within 1 day
-
bug sev:M
Difficulty 5/5 Over a week Newbie friendliness 12/100
Systemorph/MeshWeaver#6432 · 4 comments ·
Maintainers usually reply within 1 day
-
bug sev:M
Difficulty 4/5 3-5 days Newbie friendliness 22/100
Systemorph/MeshWeaver#6429 · 2 comments ·
Maintainers usually reply within 1 day
All issues in Systemorph/MeshWeaver
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 83/100
-
[誤判定] `define` が `デフィね`・`デフィ値` になるPossibly taken A pull request linked to this issue is open or already merged. Open再現済み 要トリアージ 誤判定
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
yksr-melt/Meltype#421 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
Facepunch/sbox-public#12063 · 1 comment ·
Maintainers usually reply within 2 days
-
documentation
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
facioquo/stock-indicators-dotnet#2316 · 1 comment ·
Maintainers usually reply within 1 day
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
ionide/FsAutoComplete#1559 ·