Skip to content
This repository

TransportClient hangs when in sniff mode and no node running #1818

Closed
jprante opened this Issue March 28, 2012 · 3 comments

2 participants

Jörg Prante Shay Banon
Jörg Prante

When TransportClient is started in sniff mode, but no ES node is running at a single given transport address, only a "Connection refused" exception is silently logged at debug level. After that, TransportClient hangs in "addTransportAddress".

Code:

    Settings settings = ImmutableSettings.settingsBuilder()
            .put("cluster.name", "elasticsearch")
            .put("client.transport.sniff", true)
            .build();
    try {
        Client client = new TransportClient(settings);        
        client.addTransportAddress(address);
        client.close();
    } catch (Exception e) {
        logger.log(Level.WARNING, e.getMessage());            
    }

I expect a NoNodeAvailableException (or a MasterNotDiscoveredException?) instead.

Here is the debug level message.

[22:12:51,680][DEBUG][org.elasticsearch.client.transport] [Riot] failed to connect to node [[#transport#-1][inet[Jorg-Prantes-MacBook-Pro.local/192.168.1.113:9300]]], removed from nodes list
org.elasticsearch.transport.ConnectTransportException: [][inet[Jorg-Prantes-MacBook-Pro.local/192.168.1.113:9300]] connect_timeout[30s]
    at org.elasticsearch.transport.netty.NettyTransport.connectToChannels(NettyTransport.java:560)
    at org.elasticsearch.transport.netty.NettyTransport.connectToNode(NettyTransport.java:503)
    at org.elasticsearch.transport.netty.NettyTransport.connectToNode(NettyTransport.java:482)
    at org.elasticsearch.transport.TransportService.connectToNode(TransportService.java:128)
    at org.elasticsearch.client.transport.TransportClientNodesService$SniffNodesSampler$1.run(TransportClientNodesService.java:327)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:680)
Caused by: java.net.ConnectException: Connection refused
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:567)
    at org.elasticsearch.common.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.connect(NioClientSocketPipelineSink.java:400)
    at org.elasticsearch.common.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.processSelectedKeys(NioClientSocketPipelineSink.java:362)
    at org.elasticsearch.common.netty.channel.socket.nio.NioClientSocketPipelineSink$Boss.run(NioClientSocketPipelineSink.java:284)
    at org.elasticsearch.common.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:102)
    at org.elasticsearch.common.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
    ... 3 more
Jörg Prante

See also #1819

Shay Banon
Owner

Yes, seems like #1819 will fix it.

Shay Banon
Owner

Fixed in #1819.

Shay Banon kimchy closed this March 29, 2012
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.