From 827453986b1d7e281d19f112ec5b2a62573551fc Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Fri, 7 Nov 2025 16:29:59 +0000 Subject: [PATCH] Add timeout protection for gRPC worker initialization Added 30-second timeout to prevent system hang if gRPC worker fails to start. This provides better error handling and prevents indefinite waiting. Co-authored-by: whyour <22700758+whyour@users.noreply.github.com> --- back/app.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/back/app.ts b/back/app.ts index 16ca65a6..0c9ae72d 100644 --- a/back/app.ts +++ b/back/app.ts @@ -57,14 +57,21 @@ class Application { const grpcWorker = this.forkWorker('grpc'); // Wait for gRPC worker to signal it's ready before starting HTTP worker - const grpcReadyPromise = new Promise((resolve) => { + const grpcReadyPromise = new Promise((resolve, reject) => { const messageHandler = (msg: any) => { if (msg === 'ready') { grpcWorker.removeListener('message', messageHandler); + clearTimeout(timeoutId); resolve(); } }; grpcWorker.on('message', messageHandler); + + // Timeout after 30 seconds + const timeoutId = setTimeout(() => { + grpcWorker.removeListener('message', messageHandler); + reject(new Error('gRPC worker failed to start within 30 seconds')); + }, 30000); }); // Start HTTP worker after gRPC is ready