[jboss-jira] [JBoss JIRA] Updated: (JBAS-8710) HASingleton PreferredMasterElectionPolicy failing with IPv6 addresses
Richard Achmatowicz (JIRA)
jira-events at lists.jboss.org
Fri Dec 3 11:35:47 EST 2010
[ https://jira.jboss.org/browse/JBAS-8710?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
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
More information about the jboss-jira
mailing list