From 49f8e38ffe2bcee64424ce3703a42e4effa15af7 Mon Sep 17 00:00:00 2001 From: Lee *!* Clagett Date: Fri, 20 Aug 2021 19:22:38 -0400 Subject: [PATCH] Fix ZeroMQ resend bug in scanner loop --- src/scanner.cpp | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/scanner.cpp b/src/scanner.cpp index a372b7f..8c820a0 100644 --- a/src/scanner.cpp +++ b/src/scanner.cpp @@ -371,15 +371,11 @@ namespace lws auto resp = client.get_message(block_rpc_timeout); if (!resp) { - if (resp.matches(std::errc::interrupted)) - return; // a signal was sent over ZMQ - if (resp.matches(std::errc::timed_out)) - { - MWARNING("Block retrieval timeout, retrying"); - if (!send(client, block_request.clone())) - return; - continue; // to next get_blocks_fast read - } + const bool timeout = resp.matches(std::errc::timed_out); + if (timeout) + MWARNING("Block retrieval timeout, resetting scanner"); + if (timeout || resp.matches(std::errc::interrupted)) + return; MONERO_THROW(resp.error(), "Failed to retrieve blocks from daemon"); }