"java.rmi.NoSuchObjectException: no such object in table" during fabric:ensemble-add

Solution Verified - Updated -

Issue

When trying to enlarge the Fabric registry using the Karaf command fabric:ensemble-add it fails quickly with the error

io.fabric8.api.FabricException: java.rmi.NoSuchObjectException: no such object in table

Other Fabric operations like fabric:createor fabric:join work just fine.
The Fabric containers to be added to the ensemble run on OSes that have customized /etc/hosts files, where the actual host name is mapped to the loopback interface as in this example:

127.0.0.1 roothost.localdomain roothost

The problem exists irrespective of the Fabric resolver being specified (e.g. manual_ipor localip).
The full error of running fabric:ensemble-add reads:

2018-08-16 12:45:18,147 | ERROR | l Console Thread | Console                          | 37 - org.apache.karaf.shell.console - 2.4.0.redhat-630347 | Exception caught while executing command
io.fabric8.api.EnsembleModificationFailed: io.fabric8.api.FabricException: java.rmi.NoSuchObjectException: no such object in table
    at io.fabric8.api.EnsembleModificationFailed.launderThrowable(EnsembleModificationFailed.java:47)
    at io.fabric8.internal.ZooKeeperClusterServiceImpl.createCluster(ZooKeeperClusterServiceImpl.java:406)
    at io.fabric8.commands.EnsembleAddAction.doExecute(EnsembleAddAction.java:126)
    at org.apache.karaf.shell.console.AbstractAction.execute(AbstractAction.java:33)
    at org.apache.felix.gogo.commands.basic.AbstractCommand.execute(AbstractCommand.java:35)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.apache.aries.proxy.impl.ProxyHandler$1.invoke(ProxyHandler.java:54)
    at org.apache.aries.proxy.impl.ProxyHandler.invoke(ProxyHandler.java:119)
    at io.fabric8.commands.$EnsembleAdd466540623.execute(Unknown Source)
    at org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:78)
    at org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:477)
    at org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:403)
    at org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)
    at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)
    at org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)
    at org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:92)
    at org.apache.karaf.shell.console.jline.Console.run(Console.java:197)
    at org.apache.karaf.shell.console.jline.DelayedStarted.run(DelayedStarted.java:79)
Caused by: io.fabric8.api.FabricException: java.rmi.NoSuchObjectException: no such object in table
    at io.fabric8.api.FabricException.launderThrowable(FabricException.java:43)
    at io.fabric8.service.ContainerTemplate.createConnector(ContainerTemplate.java:163)
    at io.fabric8.service.ContainerTemplate$1.createConnector(ContainerTemplate.java:54)
    at io.fabric8.service.NonCachingJmxTemplate.execute(NonCachingJmxTemplate.java:32)
    at io.fabric8.service.ContainerTemplate.execute(ContainerTemplate.java:84)
    at io.fabric8.internal.ZooKeeperClusterServiceImpl.publicPort(ZooKeeperClusterServiceImpl.java:441)
    at io.fabric8.internal.ZooKeeperClusterServiceImpl.createCluster(ZooKeeperClusterServiceImpl.java:271)
    ... 19 more
Caused by: java.rmi.NoSuchObjectException: no such object in table
    at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:283)
    at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:260)
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:161)
    at javax.management.remote.rmi.RMIServerImpl_Stub.newClient(Unknown Source)
    at javax.management.remote.rmi.RMIConnector.getConnection(RMIConnector.java:2430)
    at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:308)
    at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:270)
    at io.fabric8.service.ContainerTemplate.createConnector(ContainerTemplate.java:159)
    ... 24 more

Environment

  • Fuse 6.3
  • Fabric mode
    • using manual_ip or localip resolver in Fabric
  • custom /etc/hosts configuration

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.

Current Customers and Partners

Log in for full access

Log In
Close

Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.