diff --git a/yarn-project/bb-prover/src/prover/bb_native_private_kernel_prover.ts b/yarn-project/bb-prover/src/prover/bb_native_private_kernel_prover.ts index 87f9978db987..8fc119f52525 100644 --- a/yarn-project/bb-prover/src/prover/bb_native_private_kernel_prover.ts +++ b/yarn-project/bb-prover/src/prover/bb_native_private_kernel_prover.ts @@ -113,6 +113,7 @@ export class BBNativePrivateKernelProver extends BBPrivateKernelProver { throw err; }), this.skipCleanup, + this.log, ); } } diff --git a/yarn-project/bb-prover/src/prover/bb_prover.ts b/yarn-project/bb-prover/src/prover/bb_prover.ts index 5075ccf5d382..c2131d4d0210 100644 --- a/yarn-project/bb-prover/src/prover/bb_prover.ts +++ b/yarn-project/bb-prover/src/prover/bb_prover.ts @@ -781,6 +781,7 @@ export class BBNativeRollupProver implements ServerCircuitProver { throw err; }), this.config.bbSkipCleanup, + logger, ); } } diff --git a/yarn-project/bb-prover/src/verifier/bb_verifier.ts b/yarn-project/bb-prover/src/verifier/bb_verifier.ts index 7ef1312c9809..290db387a0c1 100644 --- a/yarn-project/bb-prover/src/verifier/bb_verifier.ts +++ b/yarn-project/bb-prover/src/verifier/bb_verifier.ts @@ -63,7 +63,7 @@ export class BBCircuitVerifier implements ClientProtocolCircuitVerifier { proofType: 'ultra-honk', } satisfies CircuitVerificationStats); }; - await runInDirectory(this.config.bbWorkingDirectory, operation, this.config.bbSkipCleanup); + await runInDirectory(this.config.bbWorkingDirectory, operation, this.config.bbSkipCleanup, this.logger); } public async verifyProof(tx: Tx): Promise { @@ -103,7 +103,7 @@ export class BBCircuitVerifier implements ClientProtocolCircuitVerifier { proofType: 'client-ivc', } satisfies CircuitVerificationStats); }; - await runInDirectory(this.config.bbWorkingDirectory, operation, this.config.bbSkipCleanup); + await runInDirectory(this.config.bbWorkingDirectory, operation, this.config.bbSkipCleanup, this.logger); return true; } catch (err) { this.logger.warn(`Failed to verify ClientIVC proof for tx ${Tx.getHash(tx)}: ${String(err)}`); diff --git a/yarn-project/foundation/src/fs/run_in_dir.ts b/yarn-project/foundation/src/fs/run_in_dir.ts index 2eb4d6f02552..714ec120da6e 100644 --- a/yarn-project/foundation/src/fs/run_in_dir.ts +++ b/yarn-project/foundation/src/fs/run_in_dir.ts @@ -1,12 +1,15 @@ import { promises as fs } from 'fs'; import * as path from 'path'; +import { createLogger } from '../log/pino-logger.js'; + // Create a random directory underneath a 'base' directory // Calls a provided method, ensures the random directory is cleaned up afterwards unless the operation fails export async function runInDirectory( workingDirBase: string, fn: (dir: string) => Promise, skipCleanup: boolean | undefined, + logger = createLogger('foundation:run-in-directory'), ): Promise { // Create random directory to be used for temp files const workingDirectory = await fs.mkdtemp(path.join(workingDirBase, 'tmp-')); @@ -22,8 +25,8 @@ export async function runInDirectory( if (!skipCleanup) { try { await fs.rm(workingDirectory, { recursive: true, force: true, maxRetries: 3, retryDelay: 100 }); - } catch { - // ignore cleanup errors + } catch (err) { + logger.warn(`Failed to cleanup temporary directory ${workingDirectory}: ${err}`, { err }); } } } diff --git a/yarn-project/simulator/src/providers/acvm_native.ts b/yarn-project/simulator/src/providers/acvm_native.ts index 699318e99a81..69e7ef4d2c2b 100644 --- a/yarn-project/simulator/src/providers/acvm_native.ts +++ b/yarn-project/simulator/src/providers/acvm_native.ts @@ -158,7 +158,7 @@ export class NativeACVMSimulator implements SimulationProvider { return result.witness; }; - return await runInDirectory(this.workingDirectory, operation, false); + return await runInDirectory(this.workingDirectory, operation, false, logger); } executeUserCircuit(