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