From dcaa2b4f29edea2c18896532e04f895ce46cb822 Mon Sep 17 00:00:00 2001 From: Paul Fitzpatrick Date: Fri, 27 May 2022 16:28:45 -0400 Subject: [PATCH] (core) move DocUsageBanner to ext Summary: grist-ee build was failing since it didn't have a DocUsageBanner implementation available. Made the implementation added to monorepo available, since it will be useful to improve the activation banner. Test Plan: manaul Reviewers: georgegevoian Reviewed By: georgegevoian Subscribers: georgegevoian Differential Revision: https://phab.getgrist.com/D3452 --- app/gen-server/lib/TypeORMPatches.ts | 2 ++ app/server/lib/dbUtils.ts | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/app/gen-server/lib/TypeORMPatches.ts b/app/gen-server/lib/TypeORMPatches.ts index 6c13d009..12f1bc1a 100644 --- a/app/gen-server/lib/TypeORMPatches.ts +++ b/app/gen-server/lib/TypeORMPatches.ts @@ -13,6 +13,7 @@ // changed during construction of a query. import * as sqlite3 from '@gristlabs/sqlite3'; +import * as log from 'app/server/lib/log'; import {Mutex, MutexInterface} from 'async-mutex'; import isEqual = require('lodash/isEqual'); import {EntityManager, QueryRunner} from 'typeorm'; @@ -102,6 +103,7 @@ export function applyPatch() { await queryRunner.commitTransaction(); return result; } catch (err) { + log.debug(`SQLite transaction error [${arg1} ${arg2}] - ${err}`); try { // we throw original error even if rollback thrown an error await queryRunner.rollbackTransaction(); diff --git a/app/server/lib/dbUtils.ts b/app/server/lib/dbUtils.ts index 6a81dcec..facfa162 100644 --- a/app/server/lib/dbUtils.ts +++ b/app/server/lib/dbUtils.ts @@ -55,8 +55,12 @@ export async function getOrCreateConnection(): Promise { // If multiple servers are started within the same process, we // share the database connection. This saves locking trouble // with Sqlite. - return getConnection(); + const connection = getConnection(); + return connection; } catch (e) { + if (!String(e).match(/ConnectionNotFoundError/)) { + throw e; + } const connection = await createConnection(); // When using Sqlite, set a busy timeout of 3s to tolerate a little // interference from connections made by tests. Logging doesn't show