Original issue created by Clement Mathieu on 17, Oct 2007 at 11:28 AM – PROACTIVE-19
ProActive is not able to deal correctly with IPv6 addresses.
URIBuilder.getLocalAddress() returns the first local InetAddress matching user requirement (PA_NOLOCAL, PA_NOPRIVATE). On dual stacked machines an Inet6Address can be returned.
The prefered stack is then set using (java.net.preferIPv?Stack). The rmiregistry & friends are started using the right protocol but remote object are unable to regsiter in the rmiregistry for un unknown reason.
<![
CDATA[
→ This ClassFileServer is listening on port 2026
Created a new registry on port 6604
//[fe80:0:0:0:200:ff:fe00:0]:6604/-5fac7077:115ad3c19a0:-7fff-86c90fa5ce75c7ef:-5fac7077:115ad3c19a0:-8000
org.objectweb.proactive.core.ProActiveException: java.rmi.ConnectException: Connection refused to host: [fe80:0:0:0:200:ff:fe00:0]; nested exception is:
java.net.ConnectException: Connection refused
unable to activate a remote object at endpoint rmi://[fe80:0:0:0:200:ff:fe00:0]:6604/-5fac7077:115ad3c19a0:-7fff—86c90fa5ce75c7ef:-5fac7077:115ad3c19a0:-8000
]]>
<![
CDATA[org.objectweb.proactive.core.ProActiveException: java.rmi.ConnectException: Connection refused to host: [fe80:0:0:0:200:ff:fe00:0]; nested exception is:
java.net.ConnectException: Connection refused
at org.objectweb.proactive.core.remoteobject.rmi.RmiRemoteObjectFactory.register(RmiRemoteObjectFactory.java:166)
at org.objectweb.proactive.core.remoteobject.RemoteObjectExposer.activateProtocol(RemoteObjectExposer.java:116)
at org.objectweb.proactive.core.body.AbstractUniversalBody.register(AbstractUniversalBody.java:132)
at org.objectweb.proactive.core.body.AbstractUniversalBody.(AbstractUniversalBody.java:120)
at org.objectweb.proactive.core.body.AbstractBody.(AbstractBody.java:198)
at org.objectweb.proactive.core.body.HalfBody.(HalfBody.java:82)
at org.objectweb.proactive.core.body.HalfBody.getHalfBody(HalfBody.java:69)
at org.objectweb.proactive.core.body.LocalBodyStore.getContext(LocalBodyStore.java:189)
at org.objectweb.proactive.api.ProActiveObject.getBodyOnThis(ProActiveObject.java:1156)
at org.objectweb.proactive.api.ProActiveObject.newActive(ProActiveObject.java:245)
at org.objectweb.proactive.api.ProActiveObject.newActive(ProActiveObject.java:110)
at functionalTests.activeobject.acontinuation.Test$ACThread.run(Test.java:79)
Caused by: java.rmi.ConnectException: Connection refused to host: [fe80:0:0:0:200:ff:fe00:0]; nested exception is:
java.net.ConnectException: Connection refused
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:601)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:198)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)
at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:322)
at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
at java.rmi.Naming.rebind(Naming.java:160)
at org.objectweb.proactive.core.remoteobject.rmi.RmiRemoteObjectFactory.register(RmiRemoteObjectFactory.java:151)
… 11 more
Caused by: java.net.ConnectException: Connection refused
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
at java.net.Socket.connect(Socket.java:519)
at java.net.Socket.connect(Socket.java:469)
at java.net.Socket.(Socket.java:366)
at java.net.Socket.(Socket.java:179)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:595)
… 17 more
A temporary workaround is to set by hand -Djava.net.preferIPv4Stack. Non-regression test suite has been hacked to set this property.