- Logstash -> TCP: tcp output exception, EOFError: End of file reached
According to:
https://github.com/logstash-plugins/logstash-output-tcp/issues/9, and
https://github.com/logstash-plugins/logstash-output-tcp/issues/10
This is caused by the shutting down of TCP server, which the logstash’s TCP client is trying to connect to. And this is indeed the case.
As stated in the code tcp.rb Line 153 of logstash-output-tcp plugin:
“# don't expect any reads, but a readable socket might # mean the remote end closed, so read it and throw it away. # we'll get an EOFError if it happens.”
However:
- Logstash stopped outputting event via all output plugins once TCP output stopped. Once the TCP output was not working due to the TCP server was stopped, all of our other outputs stopped working as well, such as Redis.
According to:
https://github.com/elastic/logstash/issues/2463, and
https://github.com/elastic/logstash/issues/1933, and
https://github.com/logstash-plugins/logstash-output-tcp/issues/10
Many people have encountered such situation: all output fail if one of many outputs fails. It has been behaving like such for a long time, and according to different developers’ experience, it depends on the plugin. Some plugin’s failure will block all outputs but some won’t.
I think this is a serious problem and has be to be fixed.