From bbcec1ecee6b785e84bde83d624371ea1ea24b8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?The=20Lone=20R=C5=8Dnin?= <68780068+TheLoneRonin@users.noreply.github.com> Date: Thu, 27 May 2021 13:14:55 -0400 Subject: [PATCH] Resolve sync issues (#76) --- package.json | 2 +- src/database/sync.database.ts | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/package.json b/package.json index 86a4714..730f34d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@arweave/gateway", - "version": "0.11.2", + "version": "0.11.3", "main": "dist/src/Gateway.js", "repository": "git@github.com:ArweaveTeam/gateway.git", "author": "Arweave ", diff --git a/src/database/sync.database.ts b/src/database/sync.database.ts index 386fbbd..401c6ac 100644 --- a/src/database/sync.database.ts +++ b/src/database/sync.database.ts @@ -133,7 +133,7 @@ export async function parallelize(height: number) { } } -export async function storeBlock(height: number) { +export async function storeBlock(height: number, retry: number = 0) { try { const currentBlock = await block(height); const {formattedBlock, input} = serializeBlock(currentBlock, height); @@ -148,9 +148,14 @@ export async function storeBlock(height: number) { await storeTransactions(JSON.parse(formattedBlock.txs) as Array, height); } } catch (error) { - log.info(`[snapshot] could not retrieve block at height ${height}, retrying`); if (SIGKILL === false) { - await storeBlock(height); + if (retry >= 3) { + log.info(`[snapshot] there were problems retrieving ${height}, restarting the server`); + process.exit(); + } else { + log.info(`[snapshot] could not retrieve block at height ${height}, retrying`); + await storeBlock(height, retry + 1); + } } } }