diff --git a/backend/src/api/lightning/clightning/clightning-client.ts b/backend/src/api/lightning/clightning/clightning-client.ts index 15f472f2e..0535e0881 100644 --- a/backend/src/api/lightning/clightning/clightning-client.ts +++ b/backend/src/api/lightning/clightning/clightning-client.ts @@ -157,8 +157,18 @@ export default class CLightningClient extends EventEmitter implements AbstractLi const _self = this; - this.client = createConnection(rpcPath); - this.rl = createInterface({ input: this.client }) + this.client = createConnection(rpcPath).on( + 'error', () => { + _self.increaseWaitTime(); + _self.reconnect(); + } + ); + this.rl = createInterface({ input: this.client }).on( + 'error', () => { + _self.increaseWaitTime(); + _self.reconnect(); + } + ); this.clientConnectionPromise = new Promise(resolve => { _self.client.on('connect', () => { @@ -175,7 +185,6 @@ export default class CLightningClient extends EventEmitter implements AbstractLi _self.client.on('error', error => { logger.err(`[CLightningClient] Lightning client connection error: ${error}`); - _self.emit('error', error); _self.increaseWaitTime(); _self.reconnect(); }); diff --git a/backend/src/tasks/lightning/network-sync.service.ts b/backend/src/tasks/lightning/network-sync.service.ts index 405d39c37..c6bfdcbe3 100644 --- a/backend/src/tasks/lightning/network-sync.service.ts +++ b/backend/src/tasks/lightning/network-sync.service.ts @@ -9,6 +9,7 @@ import { ILightningApi } from '../../api/lightning/lightning-api.interface'; import { $lookupNodeLocation } from './sync-tasks/node-locations'; import lightningApi from '../../api/lightning/lightning-api-factory'; import { convertChannelId } from '../../api/lightning/clightning/clightning-convert'; +import { Common } from '../../api/common'; class NetworkSyncService { constructor() {} @@ -23,14 +24,15 @@ class NetworkSyncService { }, 1000 * 60 * 60); } - private async $runUpdater() { + private async $runUpdater(): Promise { try { logger.info(`Updating nodes and channels...`); const networkGraph = await lightningApi.$getNetworkGraph(); if (networkGraph.nodes.length === 0 || networkGraph.edges.length === 0) { logger.info(`LN Network graph is empty, retrying in 10 seconds`); - setTimeout(this.$runUpdater, 10000); + await Common.sleep$(10000); + this.$runUpdater(); return; }