From 33a8f311e5b8d9ae3d62420f0bac365bcfe4e113 Mon Sep 17 00:00:00 2001 From: catbref Date: Wed, 24 Feb 2021 21:00:52 +0000 Subject: [PATCH] Reduce logging noise from lost trade-bot ATs and self-clean if AT does not exist after 24 hours --- .../controller/tradebot/BitcoinACCTv1TradeBot.java | 11 ++++++++++- .../controller/tradebot/LitecoinACCTv1TradeBot.java | 11 ++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/qortal/controller/tradebot/BitcoinACCTv1TradeBot.java b/src/main/java/org/qortal/controller/tradebot/BitcoinACCTv1TradeBot.java index a7e83e64..b02a4230 100644 --- a/src/main/java/org/qortal/controller/tradebot/BitcoinACCTv1TradeBot.java +++ b/src/main/java/org/qortal/controller/tradebot/BitcoinACCTv1TradeBot.java @@ -382,7 +382,16 @@ public class BitcoinACCTv1TradeBot implements AcctTradeBot { // Attempt to fetch AT data atData = repository.getATRepository().fromATAddress(tradeBotData.getAtAddress()); if (atData == null) { - LOGGER.warn(() -> String.format("Unable to fetch trade AT %s from repository", tradeBotData.getAtAddress())); + LOGGER.debug(() -> String.format("Unable to fetch trade AT %s from repository", tradeBotData.getAtAddress())); + + // If it has been over 24 hours since we last updated this trade-bot entry then assume AT is never coming back + // and so wipe the trade-bot entry + if (tradeBotData.getTimestamp() + MAX_AT_CONFIRMATION_PERIOD > NTP.getTime()) { + LOGGER.info(() -> String.format("AT %s has been gone for too long - deleting trade-bot entry", tradeBotData.getAtAddress())); + repository.getCrossChainRepository().delete(tradeBotData.getTradePrivateKey()); + repository.saveChanges(); + } + return; } diff --git a/src/main/java/org/qortal/controller/tradebot/LitecoinACCTv1TradeBot.java b/src/main/java/org/qortal/controller/tradebot/LitecoinACCTv1TradeBot.java index 893a1a41..ef1fd735 100644 --- a/src/main/java/org/qortal/controller/tradebot/LitecoinACCTv1TradeBot.java +++ b/src/main/java/org/qortal/controller/tradebot/LitecoinACCTv1TradeBot.java @@ -380,7 +380,16 @@ public class LitecoinACCTv1TradeBot implements AcctTradeBot { // Attempt to fetch AT data atData = repository.getATRepository().fromATAddress(tradeBotData.getAtAddress()); if (atData == null) { - LOGGER.warn(() -> String.format("Unable to fetch trade AT %s from repository", tradeBotData.getAtAddress())); + LOGGER.debug(() -> String.format("Unable to fetch trade AT %s from repository", tradeBotData.getAtAddress())); + + // If it has been over 24 hours since we last updated this trade-bot entry then assume AT is never coming back + // and so wipe the trade-bot entry + if (tradeBotData.getTimestamp() + MAX_AT_CONFIRMATION_PERIOD > NTP.getTime()) { + LOGGER.info(() -> String.format("AT %s has been gone for too long - deleting trade-bot entry", tradeBotData.getAtAddress())); + repository.getCrossChainRepository().delete(tradeBotData.getTradePrivateKey()); + repository.saveChanges(); + } + return; }