fix: add timeout handling for script execution in Vm class #14

Merged
jana merged 1 commits from limitingQueryExrcutionTime into develop 2025-10-14 16:47:37 +00:00
Showing only changes of commit 96c560a691 - Show all commits

View File

@ -172,16 +172,20 @@ export class Vm {
`; `;
const compiledScript = await this.isolate.compileScript(scriptWithResult); const compiledScript = await this.isolate.compileScript(scriptWithResult);
let timer = 0n;
const interval = setInterval(() => { const interval = setInterval(() => {
if ( if (
this.isolate.cpuTime > this.cpuTimeLimit || this.isolate.cpuTime > this.cpuTimeLimit ||
this.isolate.wallTime > this.timeLimit this.isolate.wallTime > this.timeLimit ||
timer > this.timeLimit
) { ) {
this.isolate.dispose(); this.isolate.dispose();
rejectPromise(new Error("Script execution timed out")); rejectPromise(new Error("Script execution timed out"));
} }
timer += 500000n;
}, 500); }, 500);
compiledScript.run(this.context); compiledScript.run(this.context);