On 27/04/2025 21:31, Ben Hutchings wrote:
So then I compared the build dependency versions in the last good and
first bad snapshots, and tried upgrading the Java packages one by one.
The result was that libsurefire-java (= 2.22.3-3) made the difference:
Now, the test failures have tracebacks like:
java.lang.IllegalStateException: Recursive update
So I don't know that this is really a regression in surefire, or whether
the plugin that was removed just happened to interact with the bug and
changed it from a deadlock into an exception.
Thank you for the analysis Ben, I confirm surefire 2.22.3-3 causes the
tests to hang.
So there are two issues here, the loop between slf4j and
commons-logging, and the test freeze.
* the loop is caused by a new slf4j log factory introduced in
commons-logging 1.3.0. Usually slf4j takes over commons-logging by
replacing its classes (in the org.slf4j:jcl-over-slf4j artifact) and
both libraries are not on the classpath at the same time. So we should
be able to ignore it, either by disabling the slf4j tests for now, or by
disabling the log factory in commons-logging.
* the test freeze is surprising, the test threads seem to be idling for
an unknown reason. maven-surefire-report-plugin 2.22.3 isn't compatible
with maven-reporting-api 4.0 used by the version of Maven in Debian.
We'll have to upgrade surefire to the latest version to fix this, but
this won't be possible before Forky (too much impact on other Maven
components). I recommend disabling the slf4j tests for now.
Emmanuel Bourg