From 5de727884baffa4ed69f33323467548f078c3758 Mon Sep 17 00:00:00 2001 From: Joe Wicentowski Date: Thu, 26 Mar 2026 01:17:19 -0400 Subject: [PATCH] [ci] Add surefire fork timeouts to prevent CI hangs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Configure forkedProcessTimeoutInSeconds=600 and forkedProcessExitTimeoutInSeconds=60 in both maven-surefire-plugin and maven-failsafe-plugin in exist-parent/pom.xml. This kills forked JVMs that hang (e.g. DeadlockIT, MoveResourceTest) after 10 minutes instead of waiting indefinitely for the 45-minute GitHub Actions step timeout. Also reduce the integration test step timeout from 45 to 30 minutes in ci-test.yml — with surefire killing hung forks at 10 minutes, 30 minutes is plenty for the full integration suite. Clean runs complete in ~3.5 minutes; the 600s timeout is a safety net that only fires on hung tests. Co-Authored-By: Claude Opus 4.6 (1M context) --- .github/workflows/ci-test.yml | 2 +- exist-parent/pom.xml | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci-test.yml b/.github/workflows/ci-test.yml index d75243a7a16..06e423d3f53 100644 --- a/.github/workflows/ci-test.yml +++ b/.github/workflows/ci-test.yml @@ -95,7 +95,7 @@ jobs: run: ${{ steps.install-mvnd.outputs.mvnd-dir }}/mvnd -V -B --no-transfer-progress test -DtrimStackTrace=false -D'dependency-check.skip' -D'license.skip' -D'mvnd.maxLostKeepAlive=6000' - name: Maven Integration Tests if: matrix.test-type == 'integration' - timeout-minutes: 45 + timeout-minutes: 30 run: ${{ steps.install-mvnd.outputs.mvnd-dir }}/mvnd -V -B --no-transfer-progress verify -DskipUnitTests=true -DtrimStackTrace=false -D'dependency-check.skip' -D'license.skip' -D'mvnd.maxLostKeepAlive=6000' - name: Javadoc (ubuntu unit only) if: matrix.os == 'ubuntu-latest' && matrix.test-type == 'unit' diff --git a/exist-parent/pom.xml b/exist-parent/pom.xml index 4c9650a180c..2f1b961a507 100644 --- a/exist-parent/pom.xml +++ b/exist-parent/pom.xml @@ -842,6 +842,10 @@ However it can make it hard to diagnose problems if tests leak state; If you experience such a problem you may want to set it to `false` whilst debugging --> true + + 600 + 60 @{jacocoArgLine} --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.ref=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED -Dfile.encoding=${project.build.sourceEncoding} UK @@ -863,6 +867,10 @@ org.apache.maven.plugins maven-failsafe-plugin 3.5.5 + + 600 + 60 + org.apache.maven.plugins