mirror of
https://github.com/XRPLF/rippled.git
synced 2026-07-29 18:10:34 +00:00
feat(ledger): count acquisition stalls instead of only logging them
A saturated ledgerData lane makes TimeoutCounter re-arm its timer without running the timer body, so timeouts_ never advances and the six-timeout give-up can never fire. Acquisitions then neither finish nor fail until the one-minute sweep destroys their partial maps, and the work restarts. Every step of that chain was debug-log-only, so a node at warning level could not be diagnosed after the fact. The counters are separate on purpose: deferrals rising while timeouts stay flat is the signature, and no single counter shows it. Completions are recorded in done() rather than at the "Done: complete" log line, because that line also fires for failures and misses the checkLocal and receiveNode paths; done() is the one funnel every outcome passes through and its signaled_ guard makes it idempotent. AcquireStats is only forward-declared in ServiceRegistry so libxrpl still includes nothing from xrpld. The src/ include path for the test binary moves out of the telemetry guard, since a header-only type under src/xrpld/ is testable in every build. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -190,6 +190,7 @@ tests.libxrpl > xrpl.basics
|
||||
tests.libxrpl > xrpl.config
|
||||
tests.libxrpl > xrpl.consensus
|
||||
tests.libxrpl > xrpl.core
|
||||
tests.libxrpl > xrpld.app
|
||||
tests.libxrpl > xrpld.telemetry
|
||||
tests.libxrpl > xrpl.json
|
||||
tests.libxrpl > xrpl.ledger
|
||||
|
||||
Reference in New Issue
Block a user