[jboss-cluster-dev] JGroups preference for IPv6
Jason T. Greene
jason.greene at redhat.com
Fri Apr 9 18:19:04 EDT 2010
Brian Stansberry wrote:
> This is somewhat related to previous discussion at [1] and related
> JGRP-1152 [2].
>
> Since we've upgraded JBoss AS trunk to JGroups 2.10.0.Alpha3, it will no
> longer start on a machine that supports both IPv4 and IPv6. This is
> because we don't specify java.net.preferIPv4Stack in our startup
> scripts, so Util.getIpStackType() returns StackType.IPv6. But we
> configure IPv4 multicast addresses by default so the JGRP-1152 check
> fails the startup.
>
> Since we're specifying IPv4 addresses by default, perhaps our startup
> scripts could set -Djava.net.preferIPv4Stack=true. Jason can comment if
> he likes; it may be necessary although I don't really like it (yet
> another config in an obscure location).
>
> I'm wondering if JGroups can handle this situation more flexibly. I've
> attached an *untested* patch that shows what I was thinking:
>
> 1) Add a new StackType.Either which Util.getIpStackType() returns if the
> OS supports both stack types and no java.net.preferXXX property is set.
>
> 2) Configurator.setupProtocolStack() recognizes StackType.Either and
> when it's analyzing the InetAddresses it's seeing, it uses the first one
> it sees to switch to either StackType.IPv4 or StackType.IPv6. So in this
> case the users choice of addresses controls the behavior.
>
> 3) Thereafter, the normal JGRP-1152 checks apply, so illegal
> inconsistencies are caught and rejected.
>
> I checked for other uses of Util.getIpStackType() and tweaked the one
> that needed it to deal with a return value of StackType.Either. I
> haven't checked *all* uses of StackType though; wanted to get some
> feedback first.
>
>
Your patch sounds more flexible to me.
--
Jason T. Greene
JBoss, a division of Red Hat
More information about the jboss-cluster-dev
mailing list