logstash-plugins / logstash-output-file

Apache License 2.0
23 stars 53 forks source link

EEXIST on strategically placed symlink #87

Open jrcichra opened 4 years ago

jrcichra commented 4 years ago

Original forum post (no traction): https://discuss.elastic.co/t/symbolic-links-in-logstash-for-kubernetes-eexists/232320

For all general issues, please provide the following details for fast resolution:

output {
       file {
              path => '/a/<symlink>/is/in/my/path'
       }
}

It will fail with the below error, but I'd rather it follow my symlink. The use case is statically named Kubernetes namespaces with variable final directories which are not K8S namespace compliment (dns).

Failure output from the logstash container:

WARNING: Please consider reporting this to the maintainers of com.headius.backport9.modules.Modules
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Sending Logstash logs to /usr/share/logstash/logs which is now configured via log4j2.properties
[2020-05-12T18:45:35,886][WARN ][org.logstash.instrument.metrics.gauge.LazyDelegatingGauge] A gauge metric of an unknown type (org.jruby.RubyArray) has been create for key: cluster_uuids. This may result in invalid serialization.  It is recommended to log an issue to the responsible developer/development team.
[2020-05-12T18:45:52,157][ERROR][org.logstash.execution.WorkerLoop] Exception in pipelineworker, the pipeline stopped processing new events, please check your filter configuration and restart Logstash.
org.jruby.exceptions.SystemCallError: (EEXIST) File exists - /logs/sym-link-to-a-dir
    at org.jruby.RubyDir.mkdir(org/jruby/RubyDir.java:635) ~[jruby-complete-9.2.9.0.jar:?]
    at uri_3a_classloader_3a_.META_minus_INF.jruby_dot_home.lib.ruby.stdlib.fileutils.fu_mkdir(uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/fileutils.rb:235) ~[?:?]
    at uri_3a_classloader_3a_.META_minus_INF.jruby_dot_home.lib.ruby.stdlib.fileutils.mkdir_p(uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/fileutils.rb:213) ~[?:?]
    at org.jruby.RubyArray.reverse_each(org/jruby/RubyArray.java:1896) ~[jruby-complete-9.2.9.0.jar:?]
    at uri_3a_classloader_3a_.META_minus_INF.jruby_dot_home.lib.ruby.stdlib.fileutils.mkdir_p(uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/fileutils.rb:211) ~[?:?]
    at org.jruby.RubyArray.each(org/jruby/RubyArray.java:1814) ~[jruby-complete-9.2.9.0.jar:?]
    at uri_3a_classloader_3a_.META_minus_INF.jruby_dot_home.lib.ruby.stdlib.fileutils.mkdir_p(uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/fileutils.rb:196) ~[?:?]
    at