From dc4a4bdf09cfc3ecb588cdabb3877e07b5762ab0 Mon Sep 17 00:00:00 2001 From: Matthias Date: Tue, 6 Sep 2022 20:25:46 +0200 Subject: [PATCH] Wrap cleanup in try/finally handler If a database has errors, the database cleanups would fail, causing cleanup to be incomplete. closes #7364 --- freqtrade/freqtradebot.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/freqtrade/freqtradebot.py b/freqtrade/freqtradebot.py index f7dca1d75..1d171ae89 100644 --- a/freqtrade/freqtradebot.py +++ b/freqtrade/freqtradebot.py @@ -142,17 +142,20 @@ class FreqtradeBot(LoggingMixin): :return: None """ logger.info('Cleaning up modules ...') + try: + # Wrap db activities in shutdown to avoid problems if database is gone, + # and raises further exceptions. + if self.config['cancel_open_orders_on_exit']: + self.cancel_all_open_orders() - if self.config['cancel_open_orders_on_exit']: - self.cancel_all_open_orders() + self.check_for_open_trades() - self.check_for_open_trades() + finally: + self.strategy.ft_bot_cleanup() - self.strategy.ft_bot_cleanup() - - self.rpc.cleanup() - Trade.commit() - self.exchange.close() + self.rpc.cleanup() + Trade.commit() + self.exchange.close() def startup(self) -> None: """