NodeType pre-warm: warm-up update on Admin/Build received no initial state within 30s (bake recorded unproven on one memex-cloud pod)
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
調査の方向性
Read MeshWeaver.Hosting.DynamicTypePreWarmerHostedService and MeshWeaver.Mesh.MeshNodeStreamHandle, starting with the warm-up Update/subscribe path and BaseStateTimeoutException. Compare the pod's Ops/Logs around 16:00:31Z with the Admin/Build version history and tenant-visible persistence row to distinguish the listed causes. Reproduce the timeout or identify its cause, then verify the next warm-up records the bake as proven.
索引モデルが issue の本文から書いたものです。
説明
Observed
The DynamicTypePreWarmerHostedService background warm-up stream faulted on one portal pod: its Update against the Admin/Build node (Build/BuildState, the build-coordination node the pre-warmer warms NodeType hubs against) aborted with System.TimeoutException — "no initial state arrived for 'Admin/Build' within 30s" — with inner exception MeshWeaver.Mesh.MeshNodeStreamHandle+BaseStateTimeoutException: no change item at all reached the mirror inside the bound; no snapshot ever hydrated. The pod's warm-up recorded its NodeType bake as unproven rather than complete.
The component degrades by design here: the logged message states that nothing gates on this state, and lazy compilation still works, so correctness of the pod is not in question — only the pre-verified-bake guarantee for that boot.
Where and when
A single occurrence on a single pod (memex-portal-deployment-854d97b779-jsldq) in namespace memex-cloud, at 2026-10-28T16:00:31Z. The Admin/Build node itself is live and healthy: it exists, is Active, and was last modified at 15:47:31Z — about 13 minutes before the timeout — when a fresh bake for framework version c003e001 (223/223 usable across 55 chunks) was recorded ready. So writes and updates on Admin/Build were succeeding shortly before and the node was not deleted.
Impact
One pod booted with an unproven bake in this window; the portal's own warm-up history (Ops/Logs) shows warm-up otherwise completing normally across pods. No user-facing path is evidenced as broken. Judged low severity from the numbers: one occurrence, one pod, a background verification path with designed degradation.
Not established
- The cause. The log site itself enumerates candidates (below) and explicitly notes that a fresh subscribe is acknowledged before hydration, so an owner that acked but produced no frame (cold data source, per-node hub still activating, initial read yielding nothing) reads identically to an owner that never answered — the evidence does not distinguish them.
- Whether the condition persisted or self-cleared: only one occurrence is recorded; nothing shows the outcome of a subsequent warm-up on this pod.
- Whether the same shape occurred on other pods in the same boot window (no other pod appears in this fingerprint).
Candidate causes and the reading that separates them
- RLS silently rejected the prior CreateNode. Predicts: the
Admin/Buildrow is absent when read under this pod's tenant context, and the failure is systematic for that tenant. Discriminating reading: the persistence row forAdmin/Buildas seen from that pod's tenant, and whether the failure recurs on the pod's next restart. - Path/namespace claim mismatch. Predicts: every warm-up on this image fails identically. Against it: the
Adminnamespace'sBuildNodeType demonstrably works — the node has a long version history and was updated at 15:47:31Z. Discriminating reading: whether the pod's next boot reproduces the timeout. - Node deleted between create and update. Predicts a gap in
Admin/Build's version history around 16:00:31Z. Against it: the node exists now and was last modified at 15:47:31Z. Discriminating reading:Admin/Build's version history at that instant. - Per-node hub activated but its MeshDataSource produced no initial frame (cold data source, hub still activating, or an initial read that yielded nothing — all read identically here because the subscribe ack precedes hydration). Predicts: a transient — a restart or a later access re-hydrates fine, and the warm-up logs of this pod show a later successful run. Discriminating reading: the owner-side hub logs for
Admin/Buildon this pod at 16:00:31Z, and the outcome of the pod's next warm-up sweep.
The most similar prior incident at this component is Admin/_LogIncident/3cd719ae33cd1e19 (filed as issue #1635, August 2026), whose samples include this exact "no initial state arrived for 'Admin/Build' within 30s" shape — but that incident folded several different timeout shapes (hub-request timeouts, generic operation timeouts) under one fingerprint, so this is related history rather than a duplicate. Admin/_LogIncident/aa02f5158f773ec0 is a different failure mode at the same node (MeshNode Unknown on an Npgsql failure).
Where to look
MeshWeaver.Hosting.DynamicTypePreWarmerHostedService(namespaceMeshWeaver.Hosting, repository Systemorph/MeshWeaver) — the warm-up sweep and itsUpdate/subscribe againstAdmin/Build.MeshWeaver.Mesh.MeshNodeStreamHandle—BaseStateTimeoutExceptionand the subscribe-ack-before-hydration path.- The
Admin/Buildnode (Admin/Build, nodeTypeBuild) — version history around 2026-10-28T16:00Z. - This pod's warm-up logs in
Ops/Logsfor podmemex-portal-deployment-854d97b779-jsldqbefore and after 16:00:31Z.
Evidence
| Fingerprint | 800cb28cfa54d3f9 |
| Category | MeshWeaver.Hosting.DynamicTypePreWarmerHostedService |
| Severity | Error |
| Exception | System.TimeoutException |
Namespace memex-cloud |
1 occurrence(s), 2026-10-28 16:00:31Z → 2026-10-28 16:00:31Z; pods memex-portal-deployment-854d97b779-jsldq |
| Occurrences | 1 |
| First seen | 2026-10-28 16:00:31Z |
| Last seen | 2026-10-28 16:00:31Z |
| Routing | not determined — no configured route matches the category MeshWeaver.Hosting.DynamicTypePreWarmerHostedService. This repository is the configured fallback, not a finding about who owns the fault; the category names the LOGGER, which may not be the subject. |
Recent log lines
2026-10-28 16:00:31Z memex-portal-deployment-854d97b779-jsldq fail: MeshWeaver.Hosting.DynamicTypePreWarmerHostedService[0]
DynamicTypePreWarmer: warm-up stream faulted — this pod verified NOTHING about its NodeTypes (lazy compile still works, so it stays correct). Nothing gates on this state here; the bake is recorded as unproven rather than complete.
System.TimeoutException: Update aborted: no initial state arrived for 'Admin/Build' within 30s. Likely causes — (1) RLS silently rejected the prior CreateNode, (2) the path is misspelled / points at a namespace no NodeType claims, (3) the node was deleted between create and update, or (4) the per-node hub activated but its MeshDataSource didn't load the node from persistence. NO change item at all reached the mirror inside the bound — no snapshot ever hydrated. This does NOT establish that the owner never answered: a fresh subscribe is ACKNOWLEDGED BEFORE hydration, so an owner that acked and then produced no frame (a cold data source, a per-node hub still activating, an initial read that yielded nothing) reads identically here. Both the owner's activation/routing AND its initial read are still in scope.
---> MeshWeaver.Mesh.MeshNodeStreamHandle+BaseStateTimeoutException: NO change item at all reached the mirror inside the bound — no snapshot ever hydrated. This does NOT establish that the owner never answered: a fresh subscribe is ACKNOWLEDGED BEFORE hydration, so an owner that acked and then produced no frame (a cold data source, a per-node hub still activating, an initial read that yielded nothing) reads identically here. Both the owner's activation/routing AND its initial read are still in scope.
--- End of inner exception stack trace ---
Opened automatically from Admin/_LogIncident/800cb28cfa54d3f9. Recurrences are folded into this issue rather than opening new ones.
It also stands for the whole log site 5aae9031f835d109: other fingerprints of this site fold in here as comments rather than opening tickets of their own.
- 主要言語
- C#
- スター
- 12
- フォーク
- 5
- 平均マージ
- 5時間 15分
- マージ済み PR(30日)
- 980
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドなし
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
Systemorph/MeshWeaver のほかの issue
-
bug sev:M
難易度 4/5 3〜5日 初心者へのやさしさ 15/100
Systemorph/MeshWeaver#7754 ·
メンテナーはふだん 1 日以内に返信
-
Key exchange follow-ups: registry hook 500 ambiguity and an exchange health line (split from #7484)オープンenhancement sev:M
難易度 4/5 3〜5日 初心者へのやさしさ 48/100
Systemorph/MeshWeaver#7721 ·
メンテナーはふだん 1 日以内に返信
-
bug sev:L
難易度 4/5 3〜5日 初心者へのやさしさ 35/100
Systemorph/MeshWeaver#7707 · コメント 6 件 ·
メンテナーはふだん 1 日以内に返信
-
bug feature:partition-access-policy sev:H
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
Systemorph/MeshWeaver#7687 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
bug sev:M
難易度 4/5 3〜5日 初心者へのやさしさ 25/100
Systemorph/MeshWeaver#7678 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
Systemorph/MeshWeaver の issue をすべて見る
似ている issue
-
[Format]: .dartオープンformats
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
KnifeLemon/Filee#980 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 85/100
メンテナーはふだん 1 日以内に返信
-
bug effort:S P3
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
nightscout/nocturne#3219 ·
メンテナーはふだん 1 日以内に返信
-
good first issue
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信