Skip to content

Getting "File doesn't exist! Unrecoverable error" on busy logstash #84

@benmali

Description

@benmali

We are using the kusto output plugin on a very bust logstash with thousands of logs a minute, with many kusto output blocks (one for each table)

Sample kusto output block

            kusto {
              path => "/tmp/kusto-serviceA/%{+YYYY-MM-dd-HH-mm}.txt"
              ingest_url => "https://ingest-${ADX_CLUSTER}.${AZURE_REGION}.kusto.windows.net"
              app_id => "${APP_ID}"
              app_key => "${APP_KEY}"
              app_tenant => "${APP_TENANT}"
              database => "${ADX_DB}"
              table => "_serviceA"
              json_mapping => "_serviceA_mapping"
            }

This works most of the time, but we see around 0.5% of the events have the following error (with service name replaced):

[2025-08-16T16:09:54,263][ERROR][logstash.outputs.kusto ][pipeline][e1f976b130786e6ec4e5b77d8357144a209a9ac2cea8e1d16bb5cc679fc61617] File doesn't exist! Unrecoverable error. {:exception=>Errno::ENOENT, :message=>"No such file or directory - No such file or directory - /tmp/kusto-serviceA/2025-08-16-16-09.txt.prod.serviceA", :path=>"/tmp/kusto-serviceA/2025-08-16-16-09.txt.prod.serviceA", :backtrace=>["org/jruby/RubyFileTest.java:248:in size'", "/usr/share/logstash/vendor/bundle/jruby/2.6.0/gems/logstash-output-kusto-1.0.6-java/lib/logstash/outputs/kusto/ingestor.rb:94:in upload'", "/usr/share/logstash/vendor/bundle/jruby/2.6.0/gems/logstash-output-kusto-1.0.6-java/lib/logstash/outputs/kusto/ingestor.rb:86:in block in upload_async'", "/usr/share/logstash/vendor/bundle/jruby/2.6.0/gems/concurrent-ruby-1.1.9/lib/concurrent-ruby/concurrent/executor/java_executor_service.rb:79:in run'"]}

Infra:

Image: docker.elastic.co/logstash/logstash:8.5.0
Arch: Linux/amd64
Plugin Version: v2.0.2

Can you further explain how does the file rotation happen? Is there a possibility files are uploaded and deleted while another worker is writing to them?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions