Error http traffic with ElastiSearch and C# driver


#1

Hello to all!

I set up an elasticSearch to push my log services into on two server (dev + prod with same config)

Since 2 weeks i have this error :
[2015-07-28 17:44:03,056][DEBUG][action.index ] [3-D Man] observer: timeout notification from cluster service. timeout setting [1m], time since start [1m]
[2015-07-28 17:44:03,057][DEBUG][http.netty ] [3-D Man] Caught exception while handling client http traffic, closing connection [id: 0x6188651c, /127.0.0.1:49090 :> /127.0.0.1:9200]
java.nio.channels.ClosedChannelException
at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioWorker.cleanUpWriteBuffer(AbstractNioWorker.java:433)
at org.elasticsearch.common.netty.channel.socket.nio.AbstractNioWorker.writeFromUserCode(AbstractNioWorker.java:128)
at org.elasticsearch.common.netty.channel.socket.nio.NioServerSocketPipelineSink.handleAcceptedSocket(NioServerSocketPipelineSink.java:99)
at org.elasticsearch.common.netty.channel.socket.nio.NioServerSocketPipelineSink.eventSunk(NioServerSocketPipelineSink.java:36)
at org.elasticsearch.common.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendDownstream(DefaultChannelPipeline.java:779)
at org.elasticsearch.common.netty.channel.Channels.write(Channels.java:725)
at org.elasticsearch.common.netty.handler.codec.oneone.OneToOneEncoder.doEncode(OneToOneEncoder.java:71)
at org.elasticsearch.common.netty.handler.codec.oneone.OneToOneEncoder.handleDownstream(OneToOneEncoder.java:59)
at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:591)
at org.elasticsearch.common.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendDownstream(DefaultChannelPipeline.java:784)
at org.elasticsearch.http.netty.pipelining.HttpPipeliningHandler.handleDownstream(HttpPipeliningHandler.java:87)
at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:591)
at org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendDownstream(DefaultChannelPipeline.java:582)
at org.elasticsearch.http.netty.NettyHttpChannel.sendResponse(NettyHttpChannel.java:195)
at org.elasticsearch.rest.action.support.RestActionListener.onFailure(RestActionListener.java:60)
at org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction$PrimaryPhase.finishAsFailed(TransportShardReplicationOperationAction.java:536)
at org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction$PrimaryPhase.retry(TransportShardReplicationOperationAction.java:495)
at org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction$PrimaryPhase.retryBecauseUnavailable(TransportShardReplicationOperationAction.java:655)
at org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction$PrimaryPhase.doRun(TransportShardReplicationOperationAction.java:362)
at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:36)
at org.elasticsearch.action.support.replication.TransportShardReplicationOperationAction$PrimaryPhase$3.onTimeout(TransportShardReplicationOperationAction.java:515)
at org.elasticsearch.cluster.ClusterStateObserver$ObserverClusterStateListener.onTimeout(ClusterStateObserver.java:231)
at org.elasticsearch.cluster.service.InternalClusterService$NotifyTimeout.run(InternalClusterService.java:560)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)

I don't understand what I need to do to solve that. I try to update elasticSearch, delete all data, set http.max_content_length to1024mb in the confign change de elasticSearch port...But still the same issue.

To "log" in elasticSearch I use the C# client like that:
static ElasticSearchLogger() { XmlConfigurator.Configure(); }

    public ElasticSearchLogger(string serviceName, string url)
    {
        ServiceName = serviceName;
        var settings = new ConnectionSettings(new Uri(url));
        _client = new ElasticClient(settings, new HttpConnection(settings));

        if(!_client.IndexExists(AnObject).Exists)
            _client.CreateIndexAsync(AnObject);
    }

public void Info(string message)
{
var className = GetCallingClass();
var methodName = GetCallingMethod();

        _client.IndexAsync<ALogMessage>(new IndexRequest<ALogMessage>(SimpleLogMessage.BuildInfo(message, ServiceName, className, methodName))
            {
                Index = GeysirIndex,
                Type = LogType,
                Id = DateTime.Now.Ticks.ToString()
            });
    }

If you have an idea, I get it!

Thanks in advance.


#2

Up :confused: help please :cry:


(system) #3