From d12e0500af5a8935245b4621ce16179a46f8a6a3 Mon Sep 17 00:00:00 2001 From: Audric Ackermann Date: Wed, 23 Sep 2020 11:43:47 +1000 Subject: [PATCH] mark node as bad if it returns difficulty 100 --- ts/session/snode_api/serviceNodeAPI.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/ts/session/snode_api/serviceNodeAPI.ts b/ts/session/snode_api/serviceNodeAPI.ts index 6b96520f9..ea7d610f3 100644 --- a/ts/session/snode_api/serviceNodeAPI.ts +++ b/ts/session/snode_api/serviceNodeAPI.ts @@ -327,6 +327,15 @@ export async function storeOnNode( return false; } else if (e instanceof textsecure.WrongDifficultyError) { const { newDifficulty } = e; + // difficulty of 100 happens when a snode restarts. We have to exit the loop and markNodeUnreachable() + if (newDifficulty === 100) { + log.warn( + 'loki_message:::storeOnNode - invalid new difficulty:100. Marking node as bad.' + ); + successiveFailures = MAX_ACCEPTABLE_FAILURES; + continue; + } + if (!Number.isNaN(newDifficulty)) { window.storage.put('PoWDifficulty', newDifficulty); }