tkobayas commented on PR #6864:
URL: https://github.com/apache/incubator-kie/pull/6864#issuecomment-5263112861
# Parallel Test Concerns: `-T 4` Results
## Java 17 Performance Comparison
| | Baseline (sequential) | `-T 2` | `-T 4` |
|---|---|---|---|
| Phase 1 (install) | — | 43 min | 33 min |
| Phase 2 (test) | — | 1h48m | 1h08m |
| **Total** | **~2h32m** | **2h31m** | **1h41m** |
| vs Baseline | — | -1 min (nearly same) | **-51 min (faster)** |
`-T 4` achieves a **34% speedup** over baseline on Java 17. The `-T 2`
approach was nearly the same as baseline. `-T 4` provides enough parallelism to
deliver a significant improvement.
## Java 21 Issue: Forked Process Hang
Java 21 with `-T 4` **hung for 28 minutes** after all tests completed, then
GHA cancelled the step.
**Root cause**: Spring Boot invoker test modules (848–853) run nested Maven
builds that start application subprocesses. Under `-T 4` CPU contention on
4-core GHA runners, one of these subprocesses did not terminate cleanly. Maven
waited indefinitely for the hung process. GHA orphan process cleanup at job end
confirmed 2 java + 1 sh process were still running.
This is the same failure pattern as the already-disabled MongoDB integration
test module ("Forked process hang"). The issue only occurred on Java 21 — Java
17 completed cleanly. Java 21's different runtime behavior (virtual threads,
GC) under CPU contention may affect process shutdown timing.
**Impact**: Java 21 Phase 2 timing (~2h01m) is unreliable because the build
was cancelled, not completed. The actual test execution finished by 04:40
(within ~1h32m of Phase 2 start), but Maven hung waiting for the forked process.
## Disabled Tests (11 total for `-T 4`)
8 tests disabled for `-T 2` (carried over) plus 3 new for `-T 4`:
| Test | How | Why | New for `-T 4` |
|------|-----|-----|---|
| `OptaPlannerDevUITest` | `<skipTests>` in pom | DevUI WebSocket port
mismatch | |
| `QuarkusEventThreadPoolTest` | `@Disabled` | Thread pool timing
sensitivity | |
| `QuarkusTransactionRollbackTest` | `@Disabled` | Transaction status race
condition | |
| `ProcessDataIndexPostgreSqlIT` | `@Disabled` | Testcontainers startup
timeout | |
| `VertxJobSchedulerTest.testExactTime` | `@Disabled` | Timing-sensitive
assertion | |
| `JDBCOptimisticLockingIT` | `@Disabled` | Awaitility timeout | |
| `KSinkInjectionHealthCheckDisabledIT` | `@Disabled` | Re-augmentation
ClassNotFoundException (Java 21) | |
| MongoDB integration test module | `<skipTests>` + `<skipITs>` in pom |
Forked process hang | |
| `KSinkInjectionHealthCheckEnabledIT` | `@Disabled` | Re-augmentation
ClassNotFoundException | Yes |
| `JDBCPersistenceIT.testAsyncWIH` | `@Disabled` override | Awaitility
timeout under CPU contention | Yes |
| `MavenDeployTest` | `@Disabled` | UnsupportedClassVersionError under `-T
4` (Java 17 only) | Yes |
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]