Modcluster 1.2.0.Final + JBOSS EAP 6.0.1 does not work under IPv6?
lmcqfan May 15, 2013 5:05 PMHi,
we are using modcluster 1.2.0.Final together with jboss-eap-6.0.1. When we use IPv4, everything is fine.
But when we switch everything to IPv6(including Jboss EAP instances and modcluster itself which means AJP is listening on IPv6 addr and modcluster manager port 6666 is also listening on IPv6 addr and modcluster external incoming traffic is listening on IPv6 addr too). We start getting errors in the modcluster error.log. Just wondering if this is a known issue for modcluster 1.2.0 Final? or I miss configured anything. If it is a known issue, is there any workaround for this issue. thanks a lot,
//Qiang
Here is the mocluster error.log. Is this a bug in modcluster that it cannot parse the ipv6 address?
[Wed May 15 16:20:35 2013] [error] [client (null)] proxy: URI cannot be parsed: ajp://fd00:0:0:0:0:0:0:4%8:30300/ returned by /
[Wed May 15 16:20:37 2013] [error] [client fd00::3] proxy: URI cannot be parsed: ajp://fd00:0:0:0:0:0:0:3%9:30301/ returned by /
[Wed May 15 16:20:37 2013] [error] [client fd00::3] proxy: URI cannot be parsed: ajp://fd00:0:0:0:0:0:0:3%9:30300/ returned by /
Here is the modcluster configuration we used on jboss EAP side.
<subsystem xmlns="urn:jboss:domain:modcluster:1.1">
<mod-cluster-config advertise-socket="modcluster" proxy-list="[fd00::1]:6666" connector="ajp">
<dynamic-load-provider>
<load-metric type="busyness"/>
</dynamic-load-provider>
</mod-cluster-config>
</subsystem>
In the modcluster manager page, we can see the jboss eap instance is connected. it shows the context as well.
mod_cluster/1.2.0.Final
Auto Refresh show DUMP output show INFO output
Node d9f007d6-cd97-3720-99c4-959083f4e2c3 (ajp://[fd00:0:0:0:0:0:0:3%9]:30301):
Enable Contexts Disable Contexts
Balancer: mycluster,LBGroup: ,Flushpackets: Off,Flushwait: 10000,Ping: 10000000,Smax: 26,Ttl: 60000000,Status: NOTOK,Elected: 0,Read: 0,Transferred: 0,Connected: 0,Load: -1
Virtual Host 1:
Contexts:
/Example, Status: ENABLED Request: 0 Disable
/FilterExample, Status: ENABLED Request: 0 Disable
/ValveExample, Status: ENABLED Request: 0 Disable
Aliases:
default-host
localhost
example.com
when we actually access the servlet URL, we got 503 "Service Temporarily Unavailable".
"The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later."
It seems the jboss EAP does send the ajp package to the modcluster. but the modcluster cannot parse the IPv6 URI. "proxy: URI cannot be parsed: ajp://fd00:0:0:0:0:0:0:4%8:30300/"
I also attached the tcpdump for the ajp traffic between JBOSS EAP and Modcluster. from the decoded packets. we can see that JBOSS EAP sends the AJP message to Modcluster, then modcluster response with 200 OK but with the content NOTOK.
HTTP/1.1 200 OK
Date: Wed, 15 May 2013 20:27:47 GMT
Server: Apache/2.2.21 (Unix) mod_cluster/1.2.0.Final mod_ssl/2.2.21 OpenSSL/0.9.8r DAV/2 mod_jk/1.2.30
Content-Length: 88
Keep-Alive: timeout=300
Connection: Keep-Alive
Content-Type: text/plain
Type=STATUS-RSP&JVMRoute=d9f007d6-cd97-3720-99c4-959083f4e2c3&State=NOTOK&id=2043641464
-
tcpdump.cap.zip 1.1 KB