From 80ff86c027f6832866a176bc0ed0d43361dad17d Mon Sep 17 00:00:00 2001 From: "F.Tibor" Date: Wed, 17 Jun 2026 14:25:35 +0200 Subject: [PATCH 1/3] Limit per_file thread usage to 1 --- src/per_file_script.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/per_file_script.py b/src/per_file_script.py index ab9901dc..b6c93d22 100644 --- a/src/per_file_script.py +++ b/src/per_file_script.py @@ -93,6 +93,7 @@ def _run_codechecker() -> None: + ["--skip", SKIP_FILE] + ["--config", CONFIG_FILE] + [COMPILE_COMMANDS_ABSOLUTE] + + ["-j 1"] # Analysis of a single file should use a single thread! ) log(f"CodeChecker command: {' '.join(codechecker_cmd)}\n") log("===-----------------------------------------------------===\n") From ff7dd56744933038a853cd1c6f930577c1d2dc35 Mon Sep 17 00:00:00 2001 From: "F.Tibor" Date: Wed, 17 Jun 2026 14:25:55 +0200 Subject: [PATCH 2/3] Declare thread usage based on input files to bazel --- src/codechecker.bzl | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/codechecker.bzl b/src/codechecker.bzl index 899ad917..23f2b23b 100644 --- a/src/codechecker.bzl +++ b/src/codechecker.bzl @@ -43,6 +43,18 @@ load( "per_file_test", ) +def _codechecker_resource_set(os_name, input_count): + """ + Requests thread count based on number of input files. + + If requested thread count is higher than available + bazel schedules the job to run alone. + This may not work with remote machines. + """ + return { + "cpu": input_count, # analysis is run for most input files + } + def get_platform_alias(platform): """ Get platform alias for full platform names being used @@ -139,6 +151,7 @@ def _codechecker_impl(ctx): # arguments = [ctx.outputs.codechecker_script.path], mnemonic = "CodeChecker", progress_message = "CodeChecker %s" % str(ctx.label), + resource_set = _codechecker_resource_set, # use_default_shell_env = True, ) From d1c60a0570ff0b42150bc8b229ce04b000895ec4 Mon Sep 17 00:00:00 2001 From: "F.Tibor" Date: Wed, 17 Jun 2026 14:47:35 +0200 Subject: [PATCH 3/3] Fix lint issues --- src/codechecker.bzl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/codechecker.bzl b/src/codechecker.bzl index 23f2b23b..7698f3e7 100644 --- a/src/codechecker.bzl +++ b/src/codechecker.bzl @@ -43,7 +43,7 @@ load( "per_file_test", ) -def _codechecker_resource_set(os_name, input_count): +def _codechecker_resource_set(_os_name, input_count): """ Requests thread count based on number of input files. @@ -52,7 +52,7 @@ def _codechecker_resource_set(os_name, input_count): This may not work with remote machines. """ return { - "cpu": input_count, # analysis is run for most input files + "cpu": input_count, # analysis is run for most input files } def get_platform_alias(platform):