elastic search error: "can't select channel size is 0 for types: [RECOVERY, BULK, STATE]"

235 Views Asked by At

I'm getting the following error from fluentd-elasticsearch after running for every couple of hours:

can't select channel size is 0 for types: [RECOVERY, BULK, STATE]

It looks like the error is coming from here:

elasticsearch/core/src/main/java/org/elasticsearch/transport/ConnectionProfile.java
<T> T getChannel(T[] channels) {
            if (length == 0) {
                throw new IllegalStateException("can't select channel size is 0 for types: " + types);
            }
            assert channels.length >= offset + length : "illegal size: " + channels.length + " expected >= " + (offset + length);
            return channels[offset + Math.floorMod(counter.incrementAndGet(), length)];
        }

What is the cause of the this error? How do I resolve?

This is my fluentd setup:

<match *.**>
  buffer_chunk_limit 64m
  buffer_queue_limit 500
  type elasticsearch
  hosts index1:9200,index2:9200
  logstash_format true
  flush_interval 30s
  request_timeout 100s
  flush_at_shutdown true
  buffer_type file
  buffer_path /opt/buffer/td-agent/all.*.buffer
  retry_limit 17
  num_threads 8
  reload_on_failure true
  reload_connections true
  reconnect_on_error true
</match>

I'm using:

ruby gems:
    fluent-plugin-elasticsearch-1.9.5
    elasticsearch-api-5.0.4
    elasticsearch-5.0.4
    elasticsearch-transport-5.0.4
elastic search:
    elasticsearch-5.5.2
fluentd:
    td-agent-2.3.2-0.el6.x86_64
0

There are 0 best solutions below