From bd20e8b925a190576bdd8ccb4441b47dd0804dfd Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Tue, 10 Jan 2023 10:16:52 +0100 Subject: [PATCH] backend-app-api: fix infinite loop in http server stop Signed-off-by: Patrik Oldsberg --- packages/backend-app-api/src/http/createHttpServer.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/backend-app-api/src/http/createHttpServer.ts b/packages/backend-app-api/src/http/createHttpServer.ts index f72269c079..5c526ba1e2 100644 --- a/packages/backend-app-api/src/http/createHttpServer.ts +++ b/packages/backend-app-api/src/http/createHttpServer.ts @@ -35,6 +35,10 @@ export async function createHttpServer( const server = await createServer(listener, options, deps); const stopper = stoppableServer(server, 0); + // The stopper here is actually the server itself, so if we try + // to call stopper.stop() down in the stop implementation, we'll + // be calling ourselves. + const stopServer = stopper.stop.bind(stopper); return Object.assign(server, { start() { @@ -57,7 +61,7 @@ export async function createHttpServer( stop() { return new Promise((resolve, reject) => { - stopper.stop((error?: Error) => { + stopServer((error?: Error) => { if (error) { reject(error); } else {