From e3109a8fec0b92f6996f02b2b3da72c82edd8dfb Mon Sep 17 00:00:00 2001 From: softsimon Date: Mon, 20 Mar 2023 20:46:11 +0900 Subject: [PATCH] Catch exeptions in Lightning stats fixes #3486 --- backend/src/index.ts | 4 ++-- .../src/tasks/lightning/stats-updater.service.ts | 15 +++++++++------ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/backend/src/index.ts b/backend/src/index.ts index fbe9c08c2..ccba83be9 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -215,11 +215,11 @@ class Server { await lightningStatsUpdater.$startService(); await forensicsService.$startService(); } catch(e) { - logger.err(`Nodejs lightning backend crashed. Restarting in 1 minute. Reason: ${(e instanceof Error ? e.message : e)}`); + logger.err(`Exception in $runLightningBackend. Restarting in 1 minute. Reason: ${(e instanceof Error ? e.message : e)}`); await Common.sleep$(1000 * 60); this.$runLightningBackend(); }; -} + } setUpWebsocketHandling(): void { if (this.wss) { diff --git a/backend/src/tasks/lightning/stats-updater.service.ts b/backend/src/tasks/lightning/stats-updater.service.ts index 69b4cbadd..5d0ac3cfc 100644 --- a/backend/src/tasks/lightning/stats-updater.service.ts +++ b/backend/src/tasks/lightning/stats-updater.service.ts @@ -22,12 +22,15 @@ class LightningStatsUpdater { * Update the latest entry for each node every config.LIGHTNING.STATS_REFRESH_INTERVAL seconds */ private async $logStatsDaily(): Promise { - const date = new Date(); - Common.setDateMidnight(date); - const networkGraph = await lightningApi.$getNetworkGraph(); - await LightningStatsImporter.computeNetworkStats(date.getTime() / 1000, networkGraph); - - logger.debug(`Updated latest network stats`, logger.tags.ln); + try { + const date = new Date(); + Common.setDateMidnight(date); + const networkGraph = await lightningApi.$getNetworkGraph(); + await LightningStatsImporter.computeNetworkStats(date.getTime() / 1000, networkGraph); + logger.debug(`Updated latest network stats`, logger.tags.ln); + } catch (e) { + logger.err(`Exception in $logStatsDaily. Reason: ${(e instanceof Error ? e.message : e)}`); + } } }