From feb36c9e43998c8476588d6bd90dbc7e0cec5795 Mon Sep 17 00:00:00 2001 From: Sebastian Baunsgaard Date: Fri, 26 Jun 2026 10:08:57 +0000 Subject: [PATCH] Serialize federated monitoring and multitenant tests in CI The **.functions.federated.monitoring.**,**.functions.federated.multitenant.** job was the only federated test group running with the default surefire parallelism (parallel=classes, threadCount=2). Unlike pure-CP tests, these federated tests spawn worker JVMs on fixed ports, run Spark, and share the static /tmp/systemds working directory, so two classes running concurrently in one fork race on those resources. Observed symptoms include "Failed to create non-existing local working directory: /tmp/systemds" and "Federated worker processes on port N died before becoming ready", followed by a leaked worker/Spark thread keeping the fork JVM alive until the 30m job cap cancels it. Run this group with -Dtest-threadCount=1 -Dtest-forkCount=1, matching every other federated group (the federated.primitives.part1-5 groups already use this), so the classes execute serially and no longer contend for ports and the shared working directory. --- .github/workflows/javaTests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/javaTests.yml b/.github/workflows/javaTests.yml index 747d8930cd3..07762a17427 100644 --- a/.github/workflows/javaTests.yml +++ b/.github/workflows/javaTests.yml @@ -75,7 +75,7 @@ jobs: "**.functions.federated.primitives.part3.** -Dtest-threadCount=1 -Dtest-forkCount=1", "**.functions.federated.primitives.part4.** -Dtest-threadCount=1 -Dtest-forkCount=1", "**.functions.federated.primitives.part5.** -Dtest-threadCount=1 -Dtest-forkCount=1", - "**.functions.federated.monitoring.**,**.functions.federated.multitenant.**", + "**.functions.federated.monitoring.**,**.functions.federated.multitenant.** -Dtest-threadCount=1 -Dtest-forkCount=1", "**.functions.federated.codegen.**,**.functions.federated.FederatedTestObjectConstructor", "**.functions.codegenalg.partone.**", "**.functions.builtin.part1.**",