Am 02.09.26 um 16:20 schrieb Mark Thomas:
The key differences in version 2.0.16 compared to 2.0.15 are:
- Windows binaries built with OpenSSL 3.5.8
- Various robustness improvements mostly around error handling
- Add support for the extended range of options available in OpenSSL
3.0.x onwards
The 2.0.x branch is primarily intended for use with Tomcat 10.1.x
onwards but can be used with earlier versions as long as the APR/native
connector is not used.
The proposed release artifacts can be found at [1],
and the build was done using tag [2].
The Apache Tomcat Native 2.0.16 release is
[X] Stable, go ahead and release
[ ] Broken because of ...
+1 for release, but please see remark concerning test failures for TC 9
head below.
- checked artefacts for completeness
- checked artefact gpg signatures and sha512 hashes
- compared source tarballs against git sources
- checked OpenSSL version in Windows binaries
- checked some consistencies against own jnirelease.sh results
- built it against OpenSSL 4.0.2, 3.6.4 and 3.5.8, each on the Platforms
SLES 12 and 15 and RHEL 7, 8, 9 and 10 (all x86_64). APR was 1.7.6.
- only build warnings with OpenSSL 4 (constness); see below A)
- tested via TC unit tests with tcnative/OpenSSL but only the SSL/TLS
related tests on the above platforms using this mornings head of TC
11.0.x, 10.1.x and 9.0.x with latest patch levels of JDK 8, 11, 17, 21,
25, 26 and EA 27+28 from Adoptium Temurin, Amazon Corretto, Azul Zulu,
Oracle, RedHat and OpenJDK (where applicable).
- for TC 10.1.x and 11.0.x only the usual test failure noise
- for TC 9 head of this morning, I see consistent test failures for:
org.apache.catalina.authenticator.TestSSLAuthenticator FAILED
org.apache.coyote.http2.TestLargeUpload FAILED
org.apache.tomcat.jni.TestFile FAILED
org.apache.tomcat.jni.TestSocketServer FAILED
org.apache.tomcat.jni.TestSocketServerAnyLocalAddress FAILED
org.apache.tomcat.util.net.TestAlpnFallback FAILED
org.apache.tomcat.util.net.TestCrlSupport FAILED
org.apache.tomcat.util.net.TestLargeClientHello FAILED
org.apache.tomcat.util.net.ocsp.TestOcspEnabled FAILED
org.apache.tomcat.util.net.ocsp.TestOcspSoftFail FAILED
org.apache.tomcat.util.net.ocsp.TestOcspSoftFailInternalError FAILED
org.apache.tomcat.util.net.ocsp.TestOcspSoftFailTryLater FAILED
org.apache.tomcat.util.net.ocsp.TestOcspTimeout FAILED
The failure seems to always look like:
Testcase: testLargePostRequest[0: true JSSE]] took 5.817 sec
Caused an ERROR
Protocol handler initialization failed
org.apache.catalina.LifecycleException: Protocol handler initialization
failed
at
org.apache.catalina.connector.Connector.initInternal(Connector.java:1273)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:128)
at
org.apache.catalina.core.StandardService.initInternal(StandardService.java:543)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:128)
at
org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:991)
at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:128)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:161)
at org.apache.catalina.startup.Tomcat.start(Tomcat.java:454)
at
org.apache.catalina.startup.TomcatBaseTest$TomcatWithFastSessionIDs.start(TomcatBaseTest.java:902)
at
org.apache.coyote.http2.TestLargeUpload.configureAndStartWebApplication(TestLargeUpload.java:132)
at
org.apache.coyote.http2.Http2TestBase.http2Connect(Http2TestBase.java:143)
at
org.apache.coyote.http2.TestLargeUpload.testLargePostRequest(TestLargeUpload.java:85)
at
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
Caused by: java.lang.IllegalStateException: A suitable Tomcat Native
implementation is not available
at
org.apache.tomcat.util.net.openssl.OpenSSLImplementation.ensureAvailable(OpenSSLImplementation.java:66)
at
org.apache.tomcat.util.net.openssl.OpenSSLImplementation.getSSLUtil(OpenSSLImplementation.java:53)
at
org.apache.tomcat.util.net.AbstractJsseEndpoint.createSSLContext(AbstractJsseEndpoint.java:102)
at
org.apache.tomcat.util.net.AbstractJsseEndpoint.initialiseSsl(AbstractJsseEndpoint.java:78)
at org.apache.tomcat.util.net.Nio2Endpoint.bind(Nio2Endpoint.java:148)
at
org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1992)
at
org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:2010)
at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:992)
at
org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:93)
at
org.apache.catalina.connector.Connector.initInternal(Connector.java:1271)
I also see the following in
org.apache.catalina.authenticator.TestSSLAuthenticator
org.apache.catalina.manager.TestManagerWebappSsl
org.apache.catalina.valves.rewrite.TestResolverSSL
org.apache.coyote.http2.TestLargeUpload
org.apache.tomcat.jni.TestFile
org.apache.tomcat.jni.TestSocketServer
org.apache.tomcat.jni.TestSocketServerAnyLocalAddress
org.apache.tomcat.util.net.TestAlpnFallback
org.apache.tomcat.util.net.TestClientCert
org.apache.tomcat.util.net.TestClientCertTls13
org.apache.tomcat.util.net.TestCrlSupport
org.apache.tomcat.util.net.TestCustomSslTrustManager
org.apache.tomcat.util.net.TestLargeClientHello
org.apache.tomcat.util.net.TestPQC
org.apache.tomcat.util.net.TestSSLHostConfigCipher
org.apache.tomcat.util.net.TestSSLHostConfigCompat
org.apache.tomcat.util.net.TestSSLHostConfigIntegration
org.apache.tomcat.util.net.TestSSLHostConfigProtocol
org.apache.tomcat.util.net.TestSsl
org.apache.tomcat.util.net.TestSslHandshakeFailure
org.apache.tomcat.util.net.ocsp.TestOcspEnabled
org.apache.tomcat.util.net.ocsp.TestOcspSoftFail
org.apache.tomcat.util.net.ocsp.TestOcspSoftFailInternalError
org.apache.tomcat.util.net.ocsp.TestOcspSoftFailTryLater
org.apache.tomcat.util.net.ocsp.TestOcspTimeout
org.apache.tomcat.util.net.openssl.TestOpenSSLConf
org.apache.tomcat.websocket.TestWebSocketFrameClientSSL
org.apache.tomcat.websocket.TestWsWebSocketContainerSSL
and it might be closer to the root cause:
05-Sep-2026 16:51:55.560 WARNING [main]
org.apache.catalina.core.AprLifecycleListener.init The Apache Tomcat
Native library failed to load. The error reported was ['int
org.apache.tomcat.jni.Library.size(int)']
java.lang.UnsatisfiedLinkError: 'int
org.apache.tomcat.jni.Library.size(int)'
at org.apache.tomcat.jni.Library.size(Native Method)
at org.apache.tomcat.jni.Library.initialize(Library.java:312)
at
org.apache.catalina.core.AprLifecycleListener.init(AprLifecycleListener.java:312)
at
org.apache.catalina.core.AprLifecycleListener.lifecycleEvent(AprLifecycleListener.java:244)
at
org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:115)
at
org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:395)
at
org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:127)
at
org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:161)
at org.apache.catalina.startup.Tomcat.start(Tomcat.java:454)
at
org.apache.catalina.startup.TomcatBaseTest$TomcatWithFastSessionIDs.start(TomcatBaseTest.java:902)
at
org.apache.tomcat.util.net.TestSsl.testSimpleSsl(TestSsl.java:120)
at
java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
at java.base/java.lang.reflect.Method.invoke(Method.java:565)
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
I hope we can repair it before the next TC 9 release (or is is a test
only failure).
A) Compilation warnings
:::::::::::::::::::::::
Only in combination with OpenSSL 4:
src/sslutils.c: In function 'ssl_ocsp_request':
src/sslutils.c:1103:13: warning: assignment discards 'const' qualifier
from pointer target type [enabled by default]
ext = X509_get_ext(cert,nid);
^
src/sslutils.c:1104:12: warning: assignment discards 'const' qualifier
from pointer target type [enabled by default]
os = X509_EXTENSION_get_data(ext);
^
Thanks for RM!
Best Regards,
Rainer
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]