You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Konstantin Preißer <ve...@t-online.de> on 2011/08/23 15:15:30 UTC

IPv6 support dropped in Tomcat Native 1.1.22 (on Windows)?

Hi all,

while reading the thread "Tomcat 5.5.28 on 64 bit windows server 2008.", I was experimenting with various Tomcat versions and noticed that IPv6 support seems to have been dropped in the Windows version (32 bit as well as 64 bit) of TC Native 1.1.22 (which is included in Tomcat 7.0.20).
I tested on Windows 7 (32 bit), Sun/Oracle JDK 1.7.0.

1. When I downloaded Tomcat 7.0.20, I edited the server.xml and added address="[::]" attribute to the HTTP <Connector> element:

    <Connector port="8080" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443"
               address="[::]" />

2. After starting Tomcat, the following is displayed: 

Aug 23, 2011 5:57:40 AM org.apache.catalina.core.AprLifecycleListener init
INFO: Loaded APR based Apache Tomcat Native library 1.1.22.
Aug 23, 2011 5:57:40 AM org.apache.catalina.core.AprLifecycleListener init
INFO: APR capabilities: IPv6 [false], sendfile [true], accept filters [false], random [true].
Aug 23, 2011 5:57:41 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-apr-/0:0:0:0:0:0:0:0-8080"]
Aug 23, 2011 5:57:48 AM org.apache.coyote.AbstractProtocol init
SEVERE: Failed to initialize end point associated with ProtocolHandler ["http-apr-/0:0:0:0:0:0:0:0-8080"]
org.apache.tomcat.jni.Error: 731004: The requested name is valid, but no data of the requested type was found.  
	at org.apache.tomcat.jni.Address.info(Native Method)
	at org.apache.tomcat.util.net.AprEndpoint.bind(AprEndpoint.java:395)
	at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:492)
	at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:369)
	at org.apache.catalina.connector.Connector.initInternal(Connector.java:910)
	at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
	at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)
	at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
	at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:781)
	at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
	at org.apache.catalina.startup.Catalina.load(Catalina.java:573)
	at org.apache.catalina.startup.Catalina.load(Catalina.java:596)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:281)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:449)

Aug 23, 2011 5:57:48 AM org.apache.catalina.core.StandardService initInternal
SEVERE: Failed to initialize connector [Connector[HTTP/1.1-8080]]
org.apache.catalina.LifecycleException: Failed to initialize component [Connector[HTTP/1.1-8080]]
	at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:106)
	at org.apache.catalina.core.StandardService.initInternal(StandardService.java:559)
	at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
	at org.apache.catalina.core.StandardServer.initInternal(StandardServer.java:781)
	at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
	at org.apache.catalina.startup.Catalina.load(Catalina.java:573)
	at org.apache.catalina.startup.Catalina.load(Catalina.java:596)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:601)
	at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:281)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:449)
Caused by: org.apache.catalina.LifecycleException: Protocol handler initialization failed
	at org.apache.catalina.connector.Connector.initInternal(Connector.java:912)
	at org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:102)
	... 12 more
Caused by: org.apache.tomcat.jni.Error: 731004: The requested name is valid, but no data of the requested type was found.  
	at org.apache.tomcat.jni.Address.info(Native Method)
	at org.apache.tomcat.util.net.AprEndpoint.bind(AprEndpoint.java:395)
	at org.apache.tomcat.util.net.AbstractEndpoint.init(AbstractEndpoint.java:492)
	at org.apache.coyote.AbstractProtocol.init(AbstractProtocol.java:369)
	at org.apache.catalina.connector.Connector.initInternal(Connector.java:910)
	... 13 more

Aug 23, 2011 5:57:48 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-apr-8009"]
Aug 23, 2011 5:57:48 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 8139 ms
(...)

Note the "APR capabilities: IPv6 [false]" line. After Tomcat has started up, the HTTP connector isn't available.


3. Now I copied the tcnative-1.dll version 1.2.20 (which is included in TC 6.0.33 and 5.5.33) into Tomcat 7's bin directory, and started Tomcat.

4. The following is displayed: 

Aug 23, 2011 6:03:01 AM org.apache.catalina.core.AprLifecycleListener init
INFO: An older version 1.1.20 of the APR based Apache Tomcat Native library is installed, while Tomcat recommends a minimum version of 1.1.22
Aug 23, 2011 6:03:01 AM org.apache.catalina.core.AprLifecycleListener init
INFO: Loaded APR based Apache Tomcat Native library 1.1.20.
Aug 23, 2011 6:03:01 AM org.apache.catalina.core.AprLifecycleListener init
INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
Aug 23, 2011 6:03:02 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-apr-/0:0:0:0:0:0:0:0-8080"]
Aug 23, 2011 6:03:02 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-apr-8009"]
Aug 23, 2011 6:03:02 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 1304 ms
Aug 23, 2011 6:03:02 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
Aug 23, 2011 6:03:02 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.20
Aug 23, 2011 6:03:02 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory docs
Aug 23, 2011 6:03:03 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory examples
Aug 23, 2011 6:03:03 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory ROOT
Aug 23, 2011 6:03:03 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-apr-/0:0:0:0:0:0:0:0-8080"]
Aug 23, 2011 6:03:03 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-apr-8009"]
Aug 23, 2011 6:03:03 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 617 ms

Now with TC Native 1.1.20, IPv6 seems to work fine. (Well, almost. When I shutdown Tomcat, it does not stop, but "WARNING: Acceptor thread [http-apr-/0:0:0:0:0:0:0:0-8080-Acceptor-0] failed to unlock. Forcing hard socket shutdown." is displayed every second until I kill Tomcat's process.)


Is this intentional? I didn't see anything about dropped IPv6 support in the Native changelog.

Regards,

Konstantin Preißer


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tomcat.apache.org
For additional commands, e-mail: users-help@tomcat.apache.org