You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@karaf.apache.org by "Michael Vorburger (JIRA)" <ji...@apache.org> on 2017/04/07 01:02:41 UTC

[jira] [Created] (KARAF-5084) Use of LocateRegistry in RmiRegistryFactory problematic due to InetAddress.getLocalHost().getHostAddress()

Michael Vorburger created KARAF-5084:
----------------------------------------

             Summary: Use of LocateRegistry in RmiRegistryFactory problematic due to InetAddress.getLocalHost().getHostAddress()
                 Key: KARAF-5084
                 URL: https://issues.apache.org/jira/browse/KARAF-5084
             Project: Karaf
          Issue Type: Bug
          Components: karaf-management
    Affects Versions: 4.1.1
            Reporter: Michael Vorburger


I'm hitting this error e.g. from the KarafTestContainerITest.checkKarafSystemService in the org.ops4j.pax.exam2/containers/pax-exam-container-karaf :

{code}Exception in thread "JMX Connector Thread [service:jmx:rmi://0.0.0.0:44444/jndi/rmi://0.0.0.0:1099/karaf-root]" java.lang.RuntimeException: Could not start JMX connector server
	at org.apache.karaf.management.ConnectorServerFactory$1.run(ConnectorServerFactory.java:258)
Caused by: java.io.IOException: Cannot bind to URL [rmi://0.0.0.0:1099/karaf-root]: javax.naming.CommunicationException [Root exception is java.rmi.ConnectIOException: Exception creating connection to: 0.0.0.0; nested exception is: 
	java.net.NoRouteToHostException: No route to host (Host unreachable)]
	at javax.management.remote.rmi.RMIConnectorServer.newIOException(RMIConnectorServer.java:827)
	at javax.management.remote.rmi.RMIConnectorServer.start(RMIConnectorServer.java:432)
	at org.apache.karaf.management.ConnectorServerFactory$1.run(ConnectorServerFactory.java:245)
Caused by: javax.naming.CommunicationException [Root exception is java.rmi.ConnectIOException: Exception creating connection to: 0.0.0.0; nested exception is: 
	java.net.NoRouteToHostException: No route to host (Host unreachable)]
	at com.sun.jndi.rmi.registry.RegistryContext.bind(RegistryContext.java:161)
	at com.sun.jndi.toolkit.url.GenericURLContext.bind(GenericURLContext.java:228)
	at javax.naming.InitialContext.bind(InitialContext.java:425)
	at javax.management.remote.rmi.RMIConnectorServer.bind(RMIConnectorServer.java:644)
	at javax.management.remote.rmi.RMIConnectorServer.start(RMIConnectorServer.java:427)
	... 1 more
Caused by: java.rmi.ConnectIOException: Exception creating connection to: 0.0.0.0; nested exception is: 
	java.net.NoRouteToHostException: No route to host (Host unreachable)
	at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:631)
	at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216)
	at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)
	at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:342)
	at sun.rmi.registry.RegistryImpl_Stub.bind(Unknown Source)
	at com.sun.jndi.rmi.registry.RegistryContext.bind(RegistryContext.java:155)
	... 5 more
Caused by: java.net.NoRouteToHostException: No route to host (Host unreachable)
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:204)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
	at java.net.Socket.connect(Socket.java:538)
	at java.net.Socket.<init>(Socket.java:434)
	at java.net.Socket.<init>(Socket.java:211)
	at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:40)
	at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:148)
	at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:613)
	... 10 more
02:33:50.966 [main] INFO  o.o.p.e.spi.reactors.ReactorManager - suite finished
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 182.081 sec <<< FAILURE! - in org.ops4j.pax.exam.karaf.container.KarafTestContainerITest
checkKarafSystemService(org.ops4j.pax.exam.karaf.container.KarafTestContainerITest)  Time elapsed: 182.074 sec  <<< ERROR!
java.net.NoRouteToHostException: No route to host (Host unreachable)
	at java.net.PlainSocketImpl.socketConnect(Native Method)
	at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
	at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
	at java.net.Socket.connect(Socket.java:538)
	at java.net.Socket.<init>(Socket.java:434)
	at java.net.Socket.<init>(Socket.java:211)
	at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:40)
	at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:148)
	at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:613)
	at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216)
	at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)
	at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:342)
	at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
	at org.ops4j.pax.exam.rbc.client.intern.RemoteBundleContextClientImpl.getRemoteBundleContext(RemoteBundleContextClientImpl.java:242)
	at org.ops4j.pax.exam.rbc.client.intern.RemoteBundleContextClientImpl.waitForState(RemoteBundleContextClientImpl.java:211)
	at org.ops4j.pax.exam.karaf.container.internal.KarafTestContainer.waitForState(KarafTestContainer.java:606)
	at org.ops4j.pax.exam.karaf.container.internal.KarafTestContainer.startKaraf(KarafTestContainer.java:240)
	at org.ops4j.pax.exam.karaf.container.internal.KarafTestContainer.start(KarafTestContainer.java:180)
	at org.ops4j.pax.exam.spi.reactors.AllConfinedStagedReactor.invoke(AllConfinedStagedReactor.java:79)
	at org.ops4j.pax.exam.junit.impl.ProbeRunner$2.evaluate(ProbeRunner.java:267)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.ops4j.pax.exam.junit.impl.ProbeRunner.run(ProbeRunner.java:98)
	at org.ops4j.pax.exam.junit.PaxExam.run(PaxExam.java:93)
	at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:283)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:173)
	at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
	at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:128)
	at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:203)
	at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:155)
	at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103){code}

This is related to the (apparently) problematic use of InetAddress.getLocalHost().getHostName() in java.rmi.registry.LocateRegistry#getRegistry called by org.apache.karaf.management.RmiRegistryFactory; see also:

* https://bugs.opendaylight.org/show_bug.cgi?id=8176
* https://issues.apache.org/jira/browse/JCS-40
* http://bugs.java.com/bugdatabase/view_bug.do?bug_id=4665037
* https://ops4j1.jira.com/browse/PAXEXAM-740
* https://docs.oracle.com/javase/8/docs/technotes/guides/rmi/faq.html

I'll see if I can do something about contributing a fix for this...



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)