From 222bcba91bad6a6431309c2a18b647a92960cb04 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 28 Dec 2025 19:32:16 +0000 Subject: [PATCH] Refactor: Extract MAX_EXEC_BUFFER_SIZE constant and add maxBuffer to ExecOptions interface Co-authored-by: Siumauricio <47042324+Siumauricio@users.noreply.github.com> --- packages/server/src/utils/process/execAsync.ts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/packages/server/src/utils/process/execAsync.ts b/packages/server/src/utils/process/execAsync.ts index 0b5d494fb..78d830b7f 100644 --- a/packages/server/src/utils/process/execAsync.ts +++ b/packages/server/src/utils/process/execAsync.ts @@ -9,16 +9,18 @@ export { ExecError } from "./ExecError"; const execAsyncBase = util.promisify(exec); +// Set maxBuffer to 100MB to handle large backup restore operations +// Default is 1MB which can cause "maxBuffer length exceeded" errors +const MAX_EXEC_BUFFER_SIZE = 100 * 1024 * 1024; + export const execAsync = async ( command: string, options?: { cwd?: string; env?: NodeJS.ProcessEnv; shell?: string }, ): Promise<{ stdout: string; stderr: string }> => { try { - // Set maxBuffer to 100MB to handle large backup restore operations - // Default is 1MB which can cause "maxBuffer length exceeded" errors const result = await execAsyncBase(command, { ...options, - maxBuffer: 100 * 1024 * 1024, + maxBuffer: MAX_EXEC_BUFFER_SIZE, }); return { stdout: result.stdout.toString(), @@ -48,6 +50,7 @@ export const execAsync = async ( interface ExecOptions { cwd?: string; env?: NodeJS.ProcessEnv; + maxBuffer?: number; } export const execAsyncStream = ( @@ -59,11 +62,9 @@ export const execAsyncStream = ( let stdoutComplete = ""; let stderrComplete = ""; - // Set maxBuffer to 100MB to handle large backup restore operations - // Default is 1MB which can cause "maxBuffer length exceeded" errors const childProcess = exec( command, - { ...options, maxBuffer: 100 * 1024 * 1024 }, + { maxBuffer: MAX_EXEC_BUFFER_SIZE, ...options }, (error) => { if (error) { reject(