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]

Reply via email to