From 601ebf42a24bed8cfb3eced4ab373c0f317ddcb3 Mon Sep 17 00:00:00 2001 From: avallete Date: Wed, 9 Apr 2025 11:40:33 +0200 Subject: [PATCH] fix: add more logs to the exit path So we can understand better what cause the ending of the container --- src/server/server.ts | 50 +++++++++++++++++++++++++++++++++++--------- 1 file changed, 40 insertions(+), 10 deletions(-) diff --git a/src/server/server.ts b/src/server/server.ts index f30d8d30..5396f9e0 100644 --- a/src/server/server.ts +++ b/src/server/server.ts @@ -154,28 +154,58 @@ if (EXPORT_DOCS) { } else if (GENERATE_TYPES) { console.log(await getTypeOutput()) } else { - const closeListeners = closeWithGrace(async ({ err }) => { + const closeListeners = closeWithGrace(async ({ err, signal, manual }) => { if (err) { - app.log.error(err) + app.log.error({ err }, 'server closing with error') + } else { + app.log.error( + { err: new Error('Signal Received') }, + `${signal} signal received, server closing, close manual received: ${manual}` + ) + } + try { + await app.close() + } catch (err) { + app.log.error({ err }, `Failed to close app`) + throw err + } + try { + await adminApp.close() + } catch (err) { + app.log.error({ err }, `Failed to close adminApp`) + throw err } - await app.close() - await adminApp.close() }) app.addHook('onClose', async () => { - closeListeners.uninstall() - await adminApp.close() + try { + closeListeners.uninstall() + await adminApp.close() + } catch (err) { + app.log.error({ err }, `Failed to close adminApp in app onClose hook`) + throw err + } }) adminApp.addHook('onClose', async () => { - closeListeners.uninstall() - await app.close() + try { + closeListeners.uninstall() + await app.close() + } catch (err) { + app.log.error({ err }, `Failed to close app in adminApp onClose hook`) + throw err + } }) app.listen({ port: PG_META_PORT, host: PG_META_HOST }, (err) => { if (err) { - app.log.error(err) + app.log.error({ err }, 'Uncaught error in app, exit(1)') process.exit(1) } const adminPort = PG_META_PORT + 1 - adminApp.listen({ port: adminPort, host: PG_META_HOST }) + adminApp.listen({ port: adminPort, host: PG_META_HOST }, (err) => { + if (err) { + app.log.error({ err }, 'Uncaught error in adminApp, exit(1)') + process.exit(1) + } + }) }) }