https://bz.apache.org/bugzilla/show_bug.cgi?id=67934
Bug ID: 67934
Summary: APR connectors will fail to load when tcnative-1 and
tcnative-2 are installed in parallel
Product: Tomcat 9
Version: 9.0.x
Hardware: All
OS: All
Status: NEW
Severity: normal
Priority: P2
Component: Connectors
Assignee: [email protected]
Reporter: [email protected]
Target Milestone: -----
Note: This applies to both 8.5.x and 9.0.x.
Since tcnative 1.x and 2.x can be installed side by side:
> root@deblndw011x:/tmp/local/lib
> # ll
> total 19576
> drwxr-xr-x 2 osipovmi wheel 512 2023-10-12 17:24 engines-3/
> -rw-r--r-- 1 osipovmi wheel 8917782 2023-10-12 17:24 libcrypto.a
> lrwxr-xr-x 1 osipovmi wheel 14 2023-10-12 17:24 libcrypto.so@ ->
> libcrypto.so.3
> -rwxr-xr-x 1 osipovmi wheel 5050168 2023-10-12 17:24 libcrypto.so.3*
> -rw-r--r-- 1 osipovmi wheel 1328044 2023-10-12 17:24 libssl.a
> lrwxr-xr-x 1 osipovmi wheel 11 2023-10-12 17:24 libssl.so@ ->
> libssl.so.3
> -rwxr-xr-x 1 osipovmi wheel 783496 2023-10-12 17:24 libssl.so.3*
> -rw-r--r-- 1 osipovmi wheel 1701660 2023-10-27 12:57 libtcnative-1.a
> -rwxr-xr-x 1 osipovmi wheel 1052 2023-10-27 12:57 libtcnative-1.la*
> lrwxr-xr-x 1 osipovmi wheel 23 2023-10-27 12:57 libtcnative-1.so@ ->
> libtcnative-1.so.0.2.40
> lrwxr-xr-x 1 osipovmi wheel 23 2023-10-27 12:57 libtcnative-1.so.0@
> -> libtcnative-1.so.0.2.40
> -rwxr-xr-x 1 osipovmi wheel 975800 2023-10-27 12:57
> libtcnative-1.so.0.2.40*
> -rw-r--r-- 1 osipovmi wheel 567160 2023-10-27 10:39 libtcnative-2.a
> -rwxr-xr-x 1 osipovmi wheel 1050 2023-10-27 10:39 libtcnative-2.la*
> lrwxr-xr-x 1 osipovmi wheel 22 2023-10-27 10:39 libtcnative-2.so@ ->
> libtcnative-2.so.0.0.7
> lrwxr-xr-x 1 osipovmi wheel 22 2023-10-27 10:39 libtcnative-2.so.0@
> -> libtcnative-2.so.0.0.7
> -rwxr-xr-x 1 osipovmi wheel 361312 2023-10-27 10:39
> libtcnative-2.so.0.0.7*
> drwxr-xr-x 2 osipovmi wheel 512 2023-10-12 17:24 ossl-modules/
> drwxr-xr-x 2 osipovmi wheel 512 2023-10-12 17:24 pkgconfig/
or on Windows:
> PS C:\Temp\apache-tomcat-9.0.83-dev\bin> gci -include *.dll
> PS C:\Temp\apache-tomcat-9.0.83-dev\bin> gci -Path *.dll
>
> Directory: C:\Temp\apache-tomcat-9.0.83-dev\bin
>
> Mode LastWriteTime Length Name
> ---- ------------- ------ ----
> -a--- 2023-09-28 14:25 3577344 tcnative-1.dll
> -a--- 2023-09-27 16:24 3424256 tcnative-2.dll
Now let's start Tomcat 9 with APR connector configured. Library.java will use:
> private static final String [] NAMES = {"tcnative-2", "libtcnative-2",
> "tcnative-1", "libtcnative-1"};
Result:
> 27-Oct-2023 13:11:18.029 INFORMATION [main]
> org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler
> ["https-openssl-apr-30001"]
> 27-Oct-2023 13:11:18.033 SCHWERWIEGEND [main]
> org.apache.catalina.util.LifecycleBase.handleSubClassException Failed to
> initialize component [Connector["https-openssl-apr-30001"]]
> java.lang.UnsatisfiedLinkError:
> org.apache.tomcat.jni.Address.info(Ljava/lang/String;IIIJ)J
> at org.apache.tomcat.jni.Address.info(Native Method)
> at
> org.apache.tomcat.util.net.AprEndpoint.bind(AprEndpoint.java:361)
> at
> org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1326)
> at
> org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1339)
> at
> org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:654)
> at
> org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:75)
> at
> org.apache.catalina.connector.Connector.initInternal(Connector.java:1009)
> at
> org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:127)
> at
> org.apache.catalina.core.StandardService.initInternal(StandardService.java:554)
> at
> org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:127)
> at
> org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:1039)
> at
> org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:127)
> at
> org.apache.catalina.startup.Catalina.load(Catalina.java:724)
> at
> org.apache.catalina.startup.Catalina.load(Catalina.java:746)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at
> org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:307)
> at
> org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:477)
> 27-Oct-2023 13:11:18.041 INFORMATION [main]
> org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler
> ["https-openssl-apr-30002"]
> 27-Oct-2023 13:11:18.042 SCHWERWIEGEND [main]
> org.apache.catalina.util.LifecycleBase.handleSubClassException Failed to
> initialize component [Connector["https-openssl-apr-30002"]]
> java.lang.UnsatisfiedLinkError:
> org.apache.tomcat.jni.Address.info(Ljava/lang/String;IIIJ)J
> at org.apache.tomcat.jni.Address.info(Native Method)
> at
> org.apache.tomcat.util.net.AprEndpoint.bind(AprEndpoint.java:361)
> at
> org.apache.tomcat.util.net.AbstractEndpoint.bindWithCleanup(AbstractEndpoint.java:1326)
> at
> org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:1339)
> at
> org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:654)
> at
> org.apache.coyote.http11.AbstractHttp11Protocol.init(AbstractHttp11Protocol.java:75)
> at
> org.apache.catalina.connector.Connector.initInternal(Connector.java:1009)
> at
> org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:127)
> at
> org.apache.catalina.core.StandardService.initInternal(StandardService.java:554)
> at
> org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:127)
> at
> org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:1039)
> at
> org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:127)
> at
> org.apache.catalina.startup.Catalina.load(Catalina.java:724)
> at
> org.apache.catalina.startup.Catalina.load(Catalina.java:746)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at
> org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:307)
> at
> org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:477)
So if we assume that both 1.x and 2.x are functionally identical, but for APR
the line in Library should eiher read:
> private static final String [] NAMES = {"tcnative-1", "libtcnative-1"};
or
> private static final String [] NAMES = {"tcnative-1", "libtcnative-1",
> "tcnative-2", "libtcnative-2"};
or maybe something else?
--
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]