@@ -198,11 +198,12 @@ function avm_check_circuit_cmds {
198198 # Commands run from repo root via parallelize, so use path from top
199199 local dump_dir_from_top=" yarn-project/end-to-end/$default_avm_inputs_dump_dir "
200200
201- # Specify timeout and resources
201+ # Specify timeout and resources.
202202 # WARNING: theoretically, transactions could need more CPU and MEM than we allocate by default.
203- # In that case, they might start timing out. For now, all of the e2e test txs seem to be relatively
204- # small and the AVM can run check-circuit with limited resources.
205- local prefix=" $hash :ISOLATE=1:TIMEOUT=30s"
203+ # In that case, they might start timing out. Most e2e test txs are small and run check-circuit
204+ # fine with limited resources, but a few produce much larger circuits (e.g. e2e_multiple_blobs
205+ # generates a ~700k-row trace) and need more CPU and a longer timeout; those are overridden below.
206+ local default_prefix=" $hash :ISOLATE=1:TIMEOUT=30s"
206207
207208 # Find all .bin files in the dump directory (handles nested dirs)
208209 for input_file in " $default_avm_inputs_dump_dir " /* /* .bin " $default_avm_inputs_dump_dir " /* /* /* .bin; do
@@ -223,6 +224,16 @@ function avm_check_circuit_cmds {
223224 local safe_test_dir=" ${test_dir// \/ / _} "
224225 local name=" avm_cc_${safe_test_dir} _${short_hash} "
225226
227+ # Per-test resource/timeout overrides for txs whose circuits are too large for the default
228+ # budget. e2e_multiple_blobs trace generation alone takes ~24s on 2 CPUs, so it needs more
229+ # CPU and a longer timeout to finish check-circuit.
230+ local prefix=" $default_prefix "
231+ case " $safe_test_dir " in
232+ e2e_multiple_blobs)
233+ prefix=" $hash :ISOLATE=1:TIMEOUT=180s:CPUS=8"
234+ ;;
235+ esac
236+
226237 # Use full path from repo root for the command (parallelize runs from there)
227238 local input_path=" $dump_dir_from_top /$rel_path "
228239 echo " $prefix :NAME=$name $bb_avm avm_check_circuit -v --avm-inputs $input_path "
0 commit comments