[
https://jira.jboss.org/browse/JBAS-8710?page=com.atlassian.jira.plugin.sy...
]
Richard Achmatowicz updated JBAS-8710:
--------------------------------------
Description:
The bean org.jboss.ha.singleton.PreferredMasterElectionPolicy has an attribute
preferredMaster which identified a process in a cluster which should be the master node in
a clustered partition.
The preferred master attriubute is specified in the form host:port.
This format works fine for IPv4 addresses, but breaks down for IPv6 addresses unless the
host part is surrounded with square brackets, according to rfc2732.
There are two places which above class may break:
(i) in setting the preferred master attribute
(ii) in comparing ClusterNode instances using PreferredMasterElectionPolicy.find() to
check if a given preferred master is in the current cluster.
was:
org.jboss.test.cluster.defaultcfg.web.test.CleanShutdownTestCase checks the behaviour of
HTTP requests to a server which in the process of shutting down.
As part of its processing, it uses a method
Cookie findCookie(int serverIndex, String name)
to find a cookie with a given name on a given server (usually indexed by 0 or 1).
Cookies are matched when they have the same domain and name.
Cookie domains can be represented as hostnames, or IP address literals.
Our version of HttpClient (which I hacked about one year ago) will always use enclosing
brackets when presented with an IPv6 address literal.
HttpClient 3.0.1 and 3.1 did not support IPv6 address literals at the time.
I may have to reinvestigate what the correct standard is, but for the time being, the
above test is failing because findCookie does not wrap IPv6 address literals
in square brackets before trying to match. As a result, we get assertion failures in the
test, even though we have the correct cookies being returned:
Error Message
null
Stacktrace
junit.framework.AssertionFailedError: null
at
org.jboss.test.cluster.defaultcfg.web.test.CleanShutdownTestCase.testShutdown(CleanShutdownTestCase.java:164)
at junit.extensions.TestDecorator.basicRun(TestDecorator.java:24)
at junit.extensions.TestSetup$1.protect(TestSetup.java:23)
at junit.extensions.TestSetup.run(TestSetup.java:27)
Standard Output
After initial request
[fec0:0:a16:ffff::d] JSESSIONID /http-sr Eiq93h0lJFU7W6Y7YDNnXw__.cluster-udp-DIST-0
After request initiated prior to shutdown
[fec0:0:a16:ffff::d] JSESSIONID /http-sr Eiq93h0lJFU7W6Y7YDNnXw__.cluster-udp-DIST-0
[fec0:0:a16:ffff::d] sleep /http-sr 0
findCookie(0, "0") is trying to match on the pair
("fec0:0:a16:ffff::d", "0")
HASingleton PreferredMasterElectionPolicy failing with IPv6
addresses
---------------------------------------------------------------------
Key: JBAS-8710
URL:
https://jira.jboss.org/browse/JBAS-8710
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Clustering, Test Suite
Affects Versions: 6.0.0.CR1
Reporter: Richard Achmatowicz
Assignee: Paul Ferraro
Fix For: 6.0.0.Final
The bean org.jboss.ha.singleton.PreferredMasterElectionPolicy has an attribute
preferredMaster which identified a process in a cluster which should be the master node in
a clustered partition.
The preferred master attriubute is specified in the form host:port.
This format works fine for IPv4 addresses, but breaks down for IPv6 addresses unless the
host part is surrounded with square brackets, according to rfc2732.
There are two places which above class may break:
(i) in setting the preferred master attribute
(ii) in comparing ClusterNode instances using PreferredMasterElectionPolicy.find() to
check if a given preferred master is in the current cluster.
--
This message is automatically generated by JIRA.
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira