davsclaus opened a new pull request, #28800: URL: https://github.com/apache/camel/pull/28800
# Description [CAMEL-26468](https://issues.apache.org/jira/browse/CAMEL-26468): the `CxfProducerTest` family in camel-cxf-soap sometimes hangs on CI. The module allows a fork 300 s (`camel.surefire.forkTimeout`), so surefire kills the whole fork with "There was a timeout in the fork". The PR build then fails, and nothing says where the test was stuck. Seen in PR builds since 2026-10-24 (the class that never logged a result): | Date | Build | Hung class | |---|---|---| | 10-24 | dependabot plugin-tools 3.16.0 | (not visible) | | 10-28 | CAMEL-26364-mcp-docs-naming | `CxfProducerContextTest` | | 10-28 | CAMEL-25259 dsl-extensions design | `CxfProducerContextTest` | | 10-31 | #28652 | `CxfProducerContextTest` | | 11-01 | #28788 (twice) | `CxfProducerTest` | The other test classes of the module take about 33 s in total, so this is a hang, not a slow module. It started before #28676 (per-test ports, merged 10-30). ## Changes This is a first step to find the cause, not a fix: - `CxfProducerTest`: a 30 s `@Timeout` in a separate thread on the class (its tests, inherited by `CxfProducerContextTest` and `CxfProducerOperationTest`) and on its four `@BeforeEach`/`@AfterEach` methods. A class-level `@Timeout` does not cover lifecycle methods, and the hang may be in stopping the endpoint or server. - `src/test/resources/junit-platform.properties`: `junit.jupiter.execution.timeout.threaddump.enabled = true`, so JUnit prints the stack of every thread before it gives up on a stuck test. This only does something when a timeout fires. A hang now fails only that test, which surefire retries (`surefire.rerunFailingTestsCount`). The flaky-test report and the log then show where it was stuck. 30 s keeps a hang plus its retries inside the fork's 300 s; the tests normally take about 1 s per class. ## Testing - `mvn test -Dtest='CxfProducer*Test'` in camel-cxf-soap: 27 tests, all pass (the same count as before). - I checked the timeout with a throwaway subclass whose test waits forever on a `CountDownLatch` (not committed). It failed after 30.75 s with `TimeoutException: hangs() timed out after 30 seconds`. The thread dump showed `junit-timeout-thread-18` waiting in `CountDownLatch.await` at the probe's line, and the three inherited tests still passed. 🤖 Generated with [Claude Code](https://claude.com/claude-code) https://claude.ai/code/session_016Y4dDiMc7mxmdVoQiGSMh8 -- 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]
