From 96689fbdcb7c0a8042278fac5d310998faafdcff Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Wed, 7 Sep 2022 16:48:30 +0200 Subject: [PATCH] backend-common: workaround for database client being collected before interval Signed-off-by: Patrik Oldsberg --- .changeset/twenty-dolls-smoke.md | 5 +++++ packages/backend-common/src/database/DatabaseManager.ts | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 .changeset/twenty-dolls-smoke.md diff --git a/.changeset/twenty-dolls-smoke.md b/.changeset/twenty-dolls-smoke.md new file mode 100644 index 0000000000..7456bd5557 --- /dev/null +++ b/.changeset/twenty-dolls-smoke.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-common': patch +--- + +Workaround for a rare race condition in tests. diff --git a/packages/backend-common/src/database/DatabaseManager.ts b/packages/backend-common/src/database/DatabaseManager.ts index 290cd4b181..363bcac30b 100644 --- a/packages/backend-common/src/database/DatabaseManager.ts +++ b/packages/backend-common/src/database/DatabaseManager.ts @@ -352,7 +352,9 @@ export class DatabaseManager { let lastKeepaliveFailed = false; setInterval(() => { - client.raw('select 1').then( + // During testing it can happen that the environment is torn down and + // this client is `undefined`, but this interval is still run. + client?.raw('select 1').then( () => { lastKeepaliveFailed = false; },