From a08eac3a19334d4a3e424395c2296b6b7a42d63a Mon Sep 17 00:00:00 2001 From: Jonathan Metzman Date: Wed, 6 Aug 2025 14:19:56 -0400 Subject: [PATCH 1/2] [chrome] Fix handling of queued fuzz tasks Chrome clusterfuzz is weird. The schedule_fuzz workload runs in a different project than the queues. Handle this. --- src/clusterfuzz/_internal/cron/schedule_fuzz.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/clusterfuzz/_internal/cron/schedule_fuzz.py b/src/clusterfuzz/_internal/cron/schedule_fuzz.py index 4520aa6098..05260305b9 100644 --- a/src/clusterfuzz/_internal/cron/schedule_fuzz.py +++ b/src/clusterfuzz/_internal/cron/schedule_fuzz.py @@ -300,9 +300,13 @@ def get_available_cpus(project: str, regions: List[str]) -> int: region_target, region_usage = get_cpu_usage(creds, project, region) target += region_target usage += region_usage + + # Deal with Chrome clusterfuzz having its pubsub in a different project. + pubsub_project = utils.get_application_id() waiting_tasks = ( - count_unacked(creds, project, 'preprocess') + count_unacked( - creds, project, 'utask_main')) + count_unacked(creds, pubsub_project, 'preprocess') + count_unacked( + creds, pubsub_project, 'utask_main')) + if usage + waiting_tasks * CPUS_PER_FUZZ_JOB > .95 * target: # Only worry about queueing build up if we are above 95% utilization. From 30471273ea7672c3faaa1b0af4132eff770f365e Mon Sep 17 00:00:00 2001 From: Jonathan Metzman Date: Thu, 7 Aug 2025 14:58:31 -0400 Subject: [PATCH 2/2] fmt --- src/clusterfuzz/_internal/cron/schedule_fuzz.py | 1 - 1 file changed, 1 deletion(-) diff --git a/src/clusterfuzz/_internal/cron/schedule_fuzz.py b/src/clusterfuzz/_internal/cron/schedule_fuzz.py index 05260305b9..1edd237009 100644 --- a/src/clusterfuzz/_internal/cron/schedule_fuzz.py +++ b/src/clusterfuzz/_internal/cron/schedule_fuzz.py @@ -307,7 +307,6 @@ def get_available_cpus(project: str, regions: List[str]) -> int: count_unacked(creds, pubsub_project, 'preprocess') + count_unacked( creds, pubsub_project, 'utask_main')) - if usage + waiting_tasks * CPUS_PER_FUZZ_JOB > .95 * target: # Only worry about queueing build up if we are above 95% utilization. count_args = ((project, region) for region in regions)