Skip to content

build: make it run again#3

Open
darkobas2 wants to merge 11 commits into
hunterlong:masterfrom
darkobas2:master
Open

build: make it run again#3
darkobas2 wants to merge 11 commits into
hunterlong:masterfrom
darkobas2:master

Conversation

@darkobas2

Copy link
Copy Markdown

No description provided.

@darkobas2 darkobas2 mentioned this pull request Sep 11, 2022
darkobas and others added 10 commits September 12, 2022 15:33
Nethermind 1.37.x has a worldstate-reentrance race that surfaces under
concurrent eth_call load (fixed upstream in nethermind#11548, not yet
released as of v1.37.2). When BalanceOf returns (nil, err) the previous
code passed nil to ToDecimals, which crashed on big.Int.String() with
SIGSEGV, killing the exporter on the first transient error.

- GetTokenBalance: check both error returns, retry once with a 150ms
  backoff, return "0" on persistent failure.
- ToDecimals: defensive nil guard so a regression never re-introduces
  the crash.

With this patch the exporter survives sporadic RPC errors and the
balance metric stays well-formed. A handful of nodes per cycle may
report 0 transiently but the next cycle should recover them.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants