From ac7a178f88d96d12b322f091a43309d632eeb095 Mon Sep 17 00:00:00 2001 From: Madeline <46743919+MaddyUnderStars@users.noreply.github.com> Date: Thu, 26 Jan 2023 14:29:33 +1100 Subject: Fix SIGTERM handler not disconnecting gateway clients and leaving timeouts active --- src/bundle/Server.ts | 3 +++ src/gateway/Server.ts | 8 ++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/bundle/Server.ts b/src/bundle/Server.ts index 96f6a149..119bb52b 100644 --- a/src/bundle/Server.ts +++ b/src/bundle/Server.ts @@ -39,6 +39,9 @@ const gateway = new Gateway.Server({ server, port, production }); process.on("SIGTERM", async () => { console.log("Shutting down due to SIGTERM"); + await gateway.stop(); + await cdn.stop(); + await api.stop(); server.close(); Sentry.close(); }); diff --git a/src/gateway/Server.ts b/src/gateway/Server.ts index 81e4b7f4..3eec5c8f 100644 --- a/src/gateway/Server.ts +++ b/src/gateway/Server.ts @@ -82,7 +82,11 @@ export class Server { } async stop() { - closeDatabase(); - this.server.close(); + this.ws.clients.forEach((x) => x.close()); + this.ws.close(() => { + this.server.close(() => { + closeDatabase(); + }); + }); } } -- cgit 1.4.1