From fafe4909dcdaee82eb1457e7a6c4cf870595a6ca Mon Sep 17 00:00:00 2001 From: hided62 Date: Thu, 20 Aug 2026 02:33:36 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20controller=20=EC=9E=90=EC=B2=B4=20?= =?UTF-8?q?=EA=B0=B1=EC=8B=A0=EC=9D=98=20PM2=20=EC=9D=B8=EC=9E=90=20?= =?UTF-8?q?=EB=B3=B5=EA=B5=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit daemon 기본 명령을 사용해 PM2가 단일 인자 배열을 JSON 문자열로 전달하는 운영 오류를 피한다. --- app/release-controller/src/selfUpgrade.ts | 3 ++- app/release-controller/test/releaseController.test.ts | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/release-controller/src/selfUpgrade.ts b/app/release-controller/src/selfUpgrade.ts index 5f8dd02b..da023d7a 100644 --- a/app/release-controller/src/selfUpgrade.ts +++ b/app/release-controller/src/selfUpgrade.ts @@ -36,7 +36,8 @@ export const buildReleaseControllerDefinition = ( name: CONTROLLER_PROCESS_NAME, script: path.join(workspaceRoot, 'app', 'release-controller', 'dist', 'index.js'), cwd: path.join(workspaceRoot, 'app', 'release-controller'), - args: ['daemon'], + // The CLI defaults to daemon. Omitting a one-element args array avoids PM2 + // serializing it as the literal `["daemon"]` during an in-process self-upgrade. env: { ...sanitizeManagedProcessEnv(config.baseEnv), GATEWAY_DATABASE_URL: config.gatewayDatabaseUrl, diff --git a/app/release-controller/test/releaseController.test.ts b/app/release-controller/test/releaseController.test.ts index 3cd4a2b6..aeb56f8e 100644 --- a/app/release-controller/test/releaseController.test.ts +++ b/app/release-controller/test/releaseController.test.ts @@ -445,8 +445,8 @@ describe('upgradeReleaseController', () => { expect(starts.at(-1)).toMatchObject({ name: 'sammo:release-controller', cwd: path.join(workspace, 'app', 'release-controller'), - args: ['daemon'], }); + expect(starts.at(-1)?.args).toBeUndefined(); }); it('restores the old controller definition when the new daemon cannot start', async () => {