You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@river.apache.org by Christopher Dolan <ch...@avid.com> on 2010/09/09 18:47:58 UTC

changing IP underneath Reggie

I have a unusual case where Reggie was running on a machine with a
DHCP-assigned IP.  At some point a DHCP renewal changed the IP.  Reggie
successfully kept sending multicast announcements and clients
successfully invoked UnicastDiscoverTask.  However,
JoinManager.RegisterTask and
ServiceDiscoveryManager.LookupCacheImpl.RegisterListenerTask both fail
with UnknownHostException every 120 seconds (which is the Reggie
multicast announce interval).  When the DNS reverted back, then the
problem abruptly went away.

Has anyone seen anything like this before?  I suspect it's a client-side
DNS caching issue, but I'm not certain.  I was surprised that
UnicastDiscoveryTask appeared to work (at least I infer that it worked
because I would never get a registrar proxy for the JoinManager if it
hadn't) since that too is a TCP connection back to the Reggie instance
by hostname.

That particular Reggie was configured for JRMP with the client running
on a 1.5 Sun JVM, so example stacktraces are as follows (with redacted
hostnames):

java.rmi.UnknownHostException: Unknown host: xxxx.; nested exception is:

	java.net.UnknownHostException: xxxx.
	at sun.rmi.transport.tcp.TCPEndpoint.newSocket(572)
	at sun.rmi.transport.tcp.TCPChannel.createConnection(185)
	at sun.rmi.transport.tcp.TCPChannel.newConnection(171)
	at sun.rmi.server.UnicastRef.invoke(94)
	at com.sun.jini.reggie.RegistrarImpl_Stub.notify(Unknown Source)
	at com.sun.jini.reggie.RegistrarProxy.notify(159)
	at
net.jini.lookup.ServiceDiscoveryManager.registerListener(3847)
	at net.jini.lookup.ServiceDiscoveryManager.access$600(608)
	at
net.jini.lookup.ServiceDiscoveryManager$LookupCacheImpl$RegisterListener
Task.run(904)
	at com.sun.jini.thread.TaskManager$TaskThread.run(393)
Caused by: java.net.UnknownHostException: xxxx.
	at java.net.PlainSocketImpl.connect(177)
	at java.net.SocksSocketImpl.connect(366)
	at java.net.Socket.connect(519)
	at java.net.Socket.connect(469)
	at java.net.Socket.<init>(366)
	at java.net.Socket.<init>(179)
	at
sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(22)
	at
sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(128)
	at sun.rmi.transport.tcp.TCPEndpoint.newSocket(569)
	... 9 more

java.rmi.UnknownHostException: Unknown host: xxxx.; nested exception is:

	java.net.UnknownHostException: xxxx.
	at sun.rmi.transport.tcp.TCPEndpoint.newSocket(572)
	at sun.rmi.transport.tcp.TCPChannel.createConnection(185)
	at sun.rmi.transport.tcp.TCPChannel.newConnection(171)
	at sun.rmi.server.UnicastRef.invoke(94)
	at com.sun.jini.reggie.RegistrarImpl_Stub.register(Unknown
Source)
	at com.sun.jini.reggie.RegistrarProxy.register(120)
	at net.jini.lookup.JoinManager$ProxyReg.register(1271)
	at net.jini.lookup.JoinManager$RegisterTask.run(794)
	at net.jini.lookup.JoinManager$ProxyRegTask.tryOnce(618)
	at com.sun.jini.thread.RetryTask.run(131)
	at com.sun.jini.thread.TaskManager$TaskThread.run(393)
Caused by: java.net.UnknownHostException: xxxx.
	at java.net.PlainSocketImpl.connect(177)
	at java.net.SocksSocketImpl.connect(366)
	at java.net.Socket.connect(519)
	at java.net.Socket.connect(469)
	at java.net.Socket.<init>(366)
	at java.net.Socket.<init>(179)
	at
sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(22)
	at
sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(128)
	at sun.rmi.transport.tcp.TCPEndpoint.newSocket(569)
	... 10 more

Chris