Skip to content

Commit 3b489cc

Browse files
authored
Fix test 20251223 (#5638)
2 parents d0723be + 4952101 commit 3b489cc

7 files changed

Lines changed: 104 additions & 36 deletions

File tree

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
name: Thread dump on cancellation
2+
description: Capture JVM thread dumps after a job is cancelled.
3+
runs:
4+
using: node20
5+
main: main.js
6+
post: post.js
7+
post-if: cancelled()
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
console.log("Thread dump post-step registered.");
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
const { execSync } = require("child_process");
2+
3+
function run(command) {
4+
execSync(command, { stdio: "inherit", shell: "/bin/bash" });
5+
}
6+
7+
function dumpThreads() {
8+
run('echo "== Cancellation detected: capturing JVM thread dumps =="');
9+
run(
10+
[
11+
"set -euo pipefail",
12+
"pids=$(pgrep -f '[j]ava' || true)",
13+
'if [[ -z "${pids}" ]]; then echo "No Java processes found."; exit 0; fi',
14+
"if command -v jcmd >/dev/null 2>&1; then",
15+
" for pid in ${pids}; do",
16+
' echo "-- jcmd Thread.print for PID ${pid} --"',
17+
" jcmd \"${pid}\" Thread.print || true",
18+
" done",
19+
" exit 0",
20+
"fi",
21+
"if command -v jstack >/dev/null 2>&1; then",
22+
" for pid in ${pids}; do",
23+
' echo "-- jstack for PID ${pid} --"',
24+
" jstack \"${pid}\" || true",
25+
" done",
26+
" exit 0",
27+
"fi",
28+
"for pid in ${pids}; do",
29+
' echo "-- kill -QUIT ${pid} (no jcmd/jstack available) --"',
30+
" kill -QUIT \"${pid}\" || true",
31+
"done",
32+
].join("\n")
33+
);
34+
}
35+
36+
try {
37+
dumpThreads();
38+
} catch (error) {
39+
console.error("Thread dump post-step failed:", error);
40+
}

.github/workflows/develop-status.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ jobs:
1515

1616
steps:
1717
- uses: actions/checkout@v4
18+
- name: Register JVM thread dump on cancel
19+
uses: ./.github/actions/thread-dump-post
1820
- name: Set up JDK
1921
uses: actions/setup-java@v1
2022
with:
@@ -29,7 +31,7 @@ jobs:
2931
- name: Build
3032
run: mvn -B -U clean install -Pquick,\!formatting
3133
- name: Verify
32-
run: ./scripts/ci/run-with-thread-dump.sh mvn -B install -P-skipSlowTests -Dmaven.javadoc.skip=true
34+
run: exec ./scripts/ci/run-with-thread-dump.sh mvn -B install -P-skipSlowTests -Dmaven.javadoc.skip=true
3335
- name: Publish Test Report
3436
if: failure()
3537
uses: scacap/action-surefire-report@v1

.github/workflows/main-status.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ jobs:
1515

1616
steps:
1717
- uses: actions/checkout@v4
18+
- name: Register JVM thread dump on cancel
19+
uses: ./.github/actions/thread-dump-post
1820
- name: Set up JDK
1921
uses: actions/setup-java@v1
2022
with:
@@ -29,7 +31,7 @@ jobs:
2931
- name: Build
3032
run: mvn -B -U -T 2C clean install -DskipTests
3133
- name: Run all tests
32-
run: ./scripts/ci/run-with-thread-dump.sh mvn -B install -P-skipSlowTests -Dmaven.javadoc.skip=true
34+
run: exec ./scripts/ci/run-with-thread-dump.sh mvn -B install -P-skipSlowTests -Dmaven.javadoc.skip=true
3335
- name: Publish Test Report
3436
if: failure()
3537
uses: scacap/action-surefire-report@v1

.github/workflows/pr-verify.yml

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ jobs:
1616
runs-on: ubuntu-latest
1717
steps:
1818
- uses: actions/checkout@v4
19+
- name: Register JVM thread dump on cancel
20+
uses: ./.github/actions/thread-dump-post
1921
- name: Set up JDK
2022
uses: actions/setup-java@v4
2123
with:
@@ -34,6 +36,8 @@ jobs:
3436
runs-on: ubuntu-latest
3537
steps:
3638
- uses: actions/checkout@v4
39+
- name: Register JVM thread dump on cancel
40+
uses: ./.github/actions/thread-dump-post
3741
- name: Set up JDK
3842
uses: actions/setup-java@v4
3943
with:
@@ -53,6 +57,8 @@ jobs:
5357
jdk: [ 11, 25 ]
5458
steps:
5559
- uses: actions/checkout@v4
60+
- name: Register JVM thread dump on cancel
61+
uses: ./.github/actions/thread-dump-post
5662
- name: Set up JDK
5763
uses: actions/setup-java@v4
5864
with:
@@ -62,7 +68,7 @@ jobs:
6268
- name: Build
6369
run: mvn --quiet clean && mvn -B --quiet -T 2C install -Pquick
6470
- name: Test
65-
run: ./scripts/ci/run-with-thread-dump.sh mvn -B test -DskipITs -P-formatting -Dmaven.javadoc.skip -Djapicmp.skip -Denforcer.skip -Danimal.sniffer.skip
71+
run: exec ./scripts/ci/run-with-thread-dump.sh mvn -B test -DskipITs -P-formatting -Dmaven.javadoc.skip -Djapicmp.skip -Denforcer.skip -Danimal.sniffer.skip
6672
- name: Publish Test Report
6773
if: failure()
6874
uses: scacap/action-surefire-report@v1.9.0
@@ -75,6 +81,8 @@ jobs:
7581
runs-on: ubuntu-latest
7682
steps:
7783
- uses: actions/checkout@v4
84+
- name: Register JVM thread dump on cancel
85+
uses: ./.github/actions/thread-dump-post
7886
- name: Set up JDK
7987
uses: actions/setup-java@v4
8088
with:
@@ -84,7 +92,7 @@ jobs:
8492
- name: Build
8593
run: mvn --quiet clean && mvn -B --quiet -T 2C install -Pquick
8694
- name: Verify
87-
run: ./scripts/ci/run-with-thread-dump.sh mvn -B verify -PskipUnitTests,-formatting -Dmaven.javadoc.skip -Denforcer.skip -Danimal.sniffer.skip
95+
run: exec ./scripts/ci/run-with-thread-dump.sh mvn -B verify -PskipUnitTests,-formatting -Dmaven.javadoc.skip -Denforcer.skip -Danimal.sniffer.skip
8896
- name: Publish Test Report
8997
if: failure()
9098
uses: scacap/action-surefire-report@v1.9.0
@@ -96,6 +104,8 @@ jobs:
96104
runs-on: ubuntu-latest
97105
steps:
98106
- uses: actions/checkout@v4
107+
- name: Register JVM thread dump on cancel
108+
uses: ./.github/actions/thread-dump-post
99109
- name: Set up JDK
100110
uses: actions/setup-java@v4
101111
with:
@@ -105,7 +115,7 @@ jobs:
105115
- name: Build
106116
run: mvn --quiet clean && mvn -B --quiet -T 2C install -Pquick
107117
- name: Verify
108-
run: ./scripts/ci/run-with-thread-dump.sh mvn -B verify -PslowTestsOnly,-skipSlowTests,-formatting -Dmaven.javadoc.skip -Djapicmp.skip -Denforcer.skip -Danimal.sniffer.skip
118+
run: exec ./scripts/ci/run-with-thread-dump.sh mvn -B verify -PslowTestsOnly,-skipSlowTests,-formatting -Dmaven.javadoc.skip -Djapicmp.skip -Denforcer.skip -Danimal.sniffer.skip
109119
- name: Publish Test Report
110120
if: failure()
111121
uses: scacap/action-surefire-report@v1.9.0
@@ -117,6 +127,8 @@ jobs:
117127
runs-on: ubuntu-latest
118128
steps:
119129
- uses: actions/checkout@v4
130+
- name: Register JVM thread dump on cancel
131+
uses: ./.github/actions/thread-dump-post
120132
- name: Set up JDK
121133
uses: actions/setup-java@v4
122134
with:
@@ -134,6 +146,8 @@ jobs:
134146
runs-on: ubuntu-latest
135147
steps:
136148
- uses: actions/checkout@v4
149+
- name: Register JVM thread dump on cancel
150+
uses: ./.github/actions/thread-dump-post
137151
- name: Set up JDK
138152
uses: actions/setup-java@v4
139153
with:
@@ -148,11 +162,13 @@ jobs:
148162
node-version: 18
149163
- name: Run end-to-end tests of RDF4J Server and Workbench
150164
working-directory: ./e2e
151-
run: ../scripts/ci/run-with-thread-dump.sh ./run.sh
165+
run: exec ../scripts/ci/run-with-thread-dump.sh ./run.sh
152166

153167
copyright-check:
154168
runs-on: ubuntu-latest
155169
steps:
156170
- uses: actions/checkout@v4
171+
- name: Register JVM thread dump on cancel
172+
uses: ./.github/actions/thread-dump-post
157173
- name: check copyright header present
158174
run: scripts/checkCopyrightPresent.sh

pom.xml

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,36 @@
4848
<!-- for maven Central deployment it is important that bom is the last module -->
4949
<module>bom</module>
5050
</modules>
51+
<properties>
52+
<java.version>11</java.version>
53+
<maven.compiler.release>${java.version}</maven.compiler.release>
54+
<maven.compiler.source>${java.version}</maven.compiler.source>
55+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
56+
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
57+
<enforce-javaee-provided.fail>true</enforce-javaee-provided.fail>
58+
<slf4j.version>1.7.36</slf4j.version>
59+
<logback.version>1.2.13</logback.version>
60+
<log4j.version>2.17.2</log4j.version>
61+
<httpclient.version>4.5.14</httpclient.version>
62+
<jackson.version>2.13.5</jackson.version>
63+
<httpcore.version>4.4.16</httpcore.version>
64+
<jsonldjava.version>0.13.4</jsonldjava.version>
65+
<last.japicmp.compare.version>5.0.0</last.japicmp.compare.version>
66+
<jaxb.version>2.3.8</jaxb.version>
67+
<lwjgl.version>3.3.6</lwjgl.version>
68+
<lucene.version>8.9.0</lucene.version>
69+
<solr.version>8.9.0</solr.version>
70+
<elasticsearch.version>7.15.2</elasticsearch.version>
71+
<spring.version>5.3.39</spring.version>
72+
<guava.version>32.1.3-jre</guava.version>
73+
<jmhVersion>1.37</jmhVersion>
74+
<servlet.version>4.0.0</servlet.version>
75+
<junit.version>5.9.3</junit.version>
76+
<jetty.version>9.4.54.v20240208</jetty.version>
77+
<netty.version>4.1.111.Final</netty.version>
78+
<testcontainers.version>1.20.6</testcontainers.version>
79+
<argLine/>
80+
</properties>
5181
<profiles>
5282
<profile>
5383
<id>ossrh</id>
@@ -377,36 +407,6 @@
377407
</build>
378408
</profile>
379409
</profiles>
380-
<properties>
381-
<java.version>11</java.version>
382-
<maven.compiler.release>${java.version}</maven.compiler.release>
383-
<maven.compiler.source>${java.version}</maven.compiler.source>
384-
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
385-
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
386-
<enforce-javaee-provided.fail>true</enforce-javaee-provided.fail>
387-
<slf4j.version>1.7.36</slf4j.version>
388-
<logback.version>1.2.13</logback.version>
389-
<log4j.version>2.17.2</log4j.version>
390-
<httpclient.version>4.5.14</httpclient.version>
391-
<jackson.version>2.13.5</jackson.version>
392-
<httpcore.version>4.4.16</httpcore.version>
393-
<jsonldjava.version>0.13.4</jsonldjava.version>
394-
<last.japicmp.compare.version>5.0.0</last.japicmp.compare.version>
395-
<jaxb.version>2.3.8</jaxb.version>
396-
<lwjgl.version>3.3.6</lwjgl.version>
397-
<lucene.version>8.9.0</lucene.version>
398-
<solr.version>8.9.0</solr.version>
399-
<elasticsearch.version>7.15.2</elasticsearch.version>
400-
<spring.version>5.3.39</spring.version>
401-
<guava.version>32.1.3-jre</guava.version>
402-
<jmhVersion>1.37</jmhVersion>
403-
<servlet.version>4.0.0</servlet.version>
404-
<junit.version>5.9.3</junit.version>
405-
<jetty.version>9.4.54.v20240208</jetty.version>
406-
<netty.version>4.1.111.Final</netty.version>
407-
<testcontainers.version>1.20.6</testcontainers.version>
408-
<argLine/>
409-
</properties>
410410
<dependencyManagement>
411411
<dependencies>
412412
<!-- Jackson Bill-of-Materials -->

0 commit comments

Comments
 (0)