mirror of
https://github.com/XRPLF/rippled.git
synced 2026-08-19 21:30:56 +00:00
The integration test's span assertions never actually ran. check_span() built a Tempo /api/search call with --data-urlencode but no -G, so curl POSTed the params as a body; Tempo answers 200 and ignores the query, so every span name looked present. Verified against a live Tempo 2.9.4: the buggy form returns the store's total trace count for any name, including "zzz.does.not.exist"; with -G a real name returns 1 and a bogus one 0. Fixed alongside it: the RPC check asserted "rpc.request", which is never emitted (ServerHandler.cpp builds "rpc.http_request"). These two had to change together, since -G turns the bogus name from a silent pass into a hard failure. Also in the script: a consensus timeout logged two failures and counted two, because a post-loop else re-reported what the timeout branch had already reported; and three unguarded curl calls aborted the whole script under set -euo pipefail, making the ACCOUNT_ZERO fallback dead code with no cleanup. Guarded the curls and wired an EXIT trap to the existing cleanup(). The trap deliberately fires only before the summary, so a completed run still leaves the stack up as the header documents. Docs corrections, all re-derived from code: - span inventory heading 35 -> 38, attribute heading 83 -> 89 rows (78 unique keys), and the section 6 header table now carries the missing TxApplySpanNames.h row so its columns sum to the same figures - two stale paths: ConsensusSpanNames.h is under include/xrpl/consensus/, TxSpanNames.h under src/xrpld/telemetry/ - consensus_round_id is int64, not string (RCLConsensus.cpp sets prevLgr.seq() + 1); the runbook's TraceQL examples now use a numeric literal instead of an unparseable bare <round_id> - state-accounting duration gauges are cumulative MICROSECONDS, not seconds (NetworkOPs.cpp declares std::chrono::microseconds and publishes dur.count() raw) - sampling_ratio is not a config key; head sampling is fixed at 1.0 and the shipped collector has no tail sampling, so the caveat was rewritten - the plan blurb referenced Jaeger; this stack is Tempo