From 2d63217d1250208c069e3805de79eefb4ed7b84e Mon Sep 17 00:00:00 2001 From: Julien Cristau Date: Thu, 22 Oct 2026 13:22:48 +0200 Subject: [PATCH] fix: run garbage collection in format_taskgraph_multiple commit 6288acceb631c3b57206c319b2c0d2bf6d0be7c9 "perf(generator): don't collect garbage while generating the task graph" caused a memory usage regression for workloads that generate task graphs from multiple sets of parameters. The workers generating graphs for several parameter sets are reused, so the cycles each set leaves behind accumulate and make firefox's ci python tests run out of memory. --- src/taskgraph/main.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/taskgraph/main.py b/src/taskgraph/main.py index f2fdd4f45..e35fca0a1 100644 --- a/src/taskgraph/main.py +++ b/src/taskgraph/main.py @@ -4,6 +4,7 @@ import argparse import atexit +import gc import logging import os import re @@ -186,7 +187,10 @@ def format_taskgraph_multiple(*args, **kwargs): there's no advantage to spawning additional processes in the subprocesses.)""" os.environ["TASKGRAPH_SERIAL"] = "1" - return format_taskgraph(*args, **kwargs) + try: + return format_taskgraph(*args, **kwargs) + finally: + gc.collect() def dump_output(out, path=None, params_spec=None):