From 32371edb4b793d9fc5206ab01ca11fa7300cbf9c Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Sat, 25 May 2024 16:21:59 +0200 Subject: [PATCH] events-backend: fix event bus timeout handling Signed-off-by: Patrik Oldsberg --- .../events-backend/src/service/hub/DatabaseEventBusStore.ts | 1 + .../events-backend/src/service/hub/createEventBusRouter.ts | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/plugins/events-backend/src/service/hub/DatabaseEventBusStore.ts b/plugins/events-backend/src/service/hub/DatabaseEventBusStore.ts index 2146df9b84..720b62bb9c 100644 --- a/plugins/events-backend/src/service/hub/DatabaseEventBusStore.ts +++ b/plugins/events-backend/src/service/hub/DatabaseEventBusStore.ts @@ -113,6 +113,7 @@ class DatabaseEventBusListener { signal.addEventListener('abort', () => { this.#listeners.delete(listener); this.#maybeTimeoutConnection(); + reject(signal.reason); }); }); } diff --git a/plugins/events-backend/src/service/hub/createEventBusRouter.ts b/plugins/events-backend/src/service/hub/createEventBusRouter.ts index 0ebd25d304..4a6c34bb6c 100644 --- a/plugins/events-backend/src/service/hub/createEventBusRouter.ts +++ b/plugins/events-backend/src/service/hub/createEventBusRouter.ts @@ -227,6 +227,12 @@ export async function createEventBusRouter(options: { `Received notification for subscription '${id}' for topic '${topic}'`, { subject: credentials.principal.subject }, ); + } catch (error) { + if (error === controller.signal.reason) { + res.end(); + } else { + throw error; + } } finally { // A small extra delay ensures a more even spread of events across // consumers in case some consumers are faster than others