diff --git a/src/xrpld/app/consensus/RCLConsensus.cpp b/src/xrpld/app/consensus/RCLConsensus.cpp index b10e709b67..30b3e4db32 100644 --- a/src/xrpld/app/consensus/RCLConsensus.cpp +++ b/src/xrpld/app/consensus/RCLConsensus.cpp @@ -556,6 +556,13 @@ RCLConsensus::Adaptor::doAccept( { namespace cs = telemetry::consensus::span; + // Make the accept span ambient for the whole accept so doAccept's log lines + // (and any spans created here) correlate to it. Non-owning: acceptSpan still + // owns/ends the span. doAccept runs to completion on the JtAccept worker + // (no coroutine yield), so this scope is thread-local and safe. + auto acceptActivation = + (acceptSpan && *acceptSpan) ? acceptSpan->activate() : telemetry::ScopedActivation{}; + prevProposers_ = result.proposers; prevRoundTime_ = result.roundTime.read();