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: dev@tomcat.apache.org Reporter: micha...@apache.org 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: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org