[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