Skip to content

Conversation

@holly-cummins
Copy link
Contributor

@holly-cummins holly-cummins commented Nov 28, 2025

Fixes #51269.

The current problem in CI (and for users) was caused by #50092, which bumped surefire from 3.5.3 to 3.5.4. We didn't catch it because (a) the tests for maven reruns wasn't merged and (b) they didn't lock the version of surefire to the one used by the rest of the build, so they wouldn't have caught the regression. I've confirmed that when I do add the version, the tests start failing, and this PR gets them passing again.

The root cause was that apache/maven-surefire#863 changed how surefire handled LauncherSessions so that one session was created for the whole process, rather than one for each test run. That meant that on runs after the first one, the rerun tests would still be loaded with the 'old' classloader and attached to the previous app. I worried this would be hard to fix the hooking the end of the test execution allows us to close everything at the right point.

@quarkus-bot

This comment has been minimized.

@gsmet gsmet force-pushed the tolerate-surefire-354 branch from 467a35e to 733c292 Compare November 28, 2025 17:29
@gsmet
Copy link
Member

gsmet commented Nov 28, 2025

I force pushed a reformat so that CI can run tonight.

This is needed because the session launcher might stay open for several test runs if surefire reruns tests.
@quarkus-bot
Copy link

quarkus-bot bot commented Nov 28, 2025

Status for workflow Quarkus CI

This is the status report for running Quarkus CI on commit 6bf4f0a.

✅ The latest workflow run for the pull request has completed successfully.

It should be safe to merge provided you have a look at the other checks in the summary.

You can consult the Develocity build scans.


Flaky tests - Develocity

⚙️ JVM Integration Tests - JDK 21 Semeru

📦 integration-tests/virtual-threads/grpc-virtual-threads

io.quarkus.grpc.example.streaming.VirtualThreadTest.testGrpcClient - History

  • 1 expectation failed. Expected status code <200> but was <500>. - java.lang.AssertionError
Details
java.lang.AssertionError: 
1 expectation failed.
Expected status code <200> but was <500>.

	at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502)
	at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
	at org.codehaus.groovy.reflection.CachedConstructor.invoke(CachedConstructor.java:73)
	at org.codehaus.groovy.runtime.callsite.ConstructorSite$ConstructorSiteNoUnwrapNoCoerce.callConstructor(ConstructorSite.java:108)

@gsmet gsmet merged commit 7c776a4 into quarkusio:main Nov 29, 2025
64 checks passed
@quarkus-bot quarkus-bot bot added this to the 3.31 - main milestone Nov 29, 2025
@holly-cummins holly-cummins deleted the tolerate-surefire-354 branch December 1, 2025 11:01
@gsmet gsmet modified the milestones: 3.31 - main, 3.30.2 Dec 2, 2025
@jmartisk jmartisk modified the milestones: 3.30.2, 3.27.2 Dec 23, 2025
@jmartisk jmartisk moved this to 3.27.2 in Backports for 3.27 Dec 23, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: 3.27.2

Development

Successfully merging this pull request may close these issues.

Re-running failing test fails with classloader errors

3 participants