mirror of
https://github.com/XRPLF/rippled.git
synced 2026-09-26 23:19:07 +00:00
Two review findings on the telemetry library. SpanContext::isValid() returned impl_ != nullptr, so it answered true for a context holding no span. threadLocalContext() wraps whatever GetCurrent() returns, and that is an empty Context on a thread with no active span, which contradicted the documented "invalid context if none is active". It now asks the Context for its span. childSpan(name, ctx) is the one caller whose behaviour changes: a context with no span used to produce a new root span, and now returns a null guard as its @return already promised. The three batch settings went to the OTel BatchSpanProcessor unchecked. Three ways that failed: zero was accepted for all of them; batch_size could exceed max_queue_size, which the SDK documents as a precondition and does not enforce; and a mistyped value let boost::bad_lexical_cast escape, which derives from std::bad_cast rather than std::runtime_error, so the operator saw a bare "bad cast" naming no key. Reading unsigned also turned "-1" into 4294967295 instead of failing, so the value is parsed signed and negatives are rejected. xrpld-example.cfg now states the ranges.