Files
rippled/docker/telemetry
Pratik Mankawde 504138dd9c test(telemetry): assert all three ledger-acquire phase hierarchies
The acquire span opens three phase children -- header, account-state tree and
transaction tree -- and the contract documented all three parentings while
checking none of them. astree had an entry marked skipped; header and txtree had
no entry at all.

The skip reason was that the parent is optional, because a healthy 5-node cluster
agreeing from genesis rarely back-fills history, so the hierarchy check would
fail against a parent with no traces. Run 32969481032 refutes the premise:
ledger.acquire reported 5 traces and so did each of the three children, one per
node. The parenting was never the uncertain part -- beginPhaseSpan() parents
through the acquire span's own captured SpanContext rather than the ambient
thread context, so it holds whichever worker opens a phase.

Asserting these matters because of what the phases are for. A fresh sync is
dominated by the account-state tree, and the flat parent span cannot separate
that from the much smaller transaction tree or from the header wait that gates
both. If a phase stops nesting under the acquire it still emits, still carries
its missing-node count and its timeout flag, and nothing else in this harness
notices -- but the trace stops answering which phase the sync is stuck in, which
is the whole reason these spans exist.

Routed here rather than to phase-10 because phase-10 has no
ledger.acquire.header or ledger.acquire.txtree span at all; the phase children
were introduced on this branch.

Verification: JSON parses; 10 relationships, 6 asserted and 4 skipped, no
duplicates, every non-wildcard child resolves to a declared span entry; counters
unchanged at 48 span types and 74 unique attributes; otel-naming exits 0;
pre-commit clean. Edited by surgical text replacement -- a first attempt used a
json.dumps round-trip and reflowed the whole file, 148 insertions against 47
deletions with unrelated compact arrays expanded and unrelated notes rewritten;
that was reverted and redone, and the churn is now 11 against 3. Whether a child
is findable INSIDE the parent's fetched trace is what CI will decide.
2026-08-26 16:21:15 +01:00
..