fix(rescan): stop the per-second getmininginfo error flood during rescan
While the daemon processes -rescan it sits in RPC warmup and rejects every call
with -28 ("Rescanning..."). The balance/tx/address refreshes already skip warmup
(state_.warming_up), but the 1-second mining poll didn't — so getmininginfo fired
the whole rescan and flooded the log with "getMiningInfo error: Rescanning..."
(~680 entries in one capture).
Gate refreshMiningInfo() on !state_.warming_up like the other refreshes. The
getrescaninfo progress poll still runs (it's how the warmup/rescan is tracked).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -586,7 +586,12 @@ void App::update()
|
|||||||
// would delay the PIN unlock worker task.
|
// would delay the PIN unlock worker task.
|
||||||
if (network_refresh_.consumeDue(RefreshTimer::Fast)) {
|
if (network_refresh_.consumeDue(RefreshTimer::Fast)) {
|
||||||
if (rpcConnected && !state_.isLocked()) {
|
if (rpcConnected && !state_.isLocked()) {
|
||||||
refreshMiningInfo();
|
// Skip the mining poll while the daemon is in warmup (e.g. during -rescan). Otherwise
|
||||||
|
// getmininginfo is rejected with -28 ("Rescanning...") every second and floods the log.
|
||||||
|
// The rescan progress poll below still runs — that's how we track the warmup/rescan.
|
||||||
|
if (!state_.warming_up) {
|
||||||
|
refreshMiningInfo();
|
||||||
|
}
|
||||||
|
|
||||||
// Poll getrescaninfo for rescan progress (if rescan flag is set)
|
// Poll getrescaninfo for rescan progress (if rescan flag is set)
|
||||||
// Use fast_rpc_ when available to avoid blocking on rpc_'s
|
// Use fast_rpc_ when available to avoid blocking on rpc_'s
|
||||||
|
|||||||
Reference in New Issue
Block a user