Netflow codec UDP input worker silently crashes

On...

Red Hat Enterprise Linux Server 7.4 (Maipo)
logstash 5.6.4-1
logstash-codec-netflow-3.8.1
openjdk-1.8.0_151-b12

lscpu

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                8
On-line CPU(s) list:   0-7
Thread(s) per core:    1
Core(s) per socket:    8
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 45
Model name:            Intel(R) Xeon(R) CPU E5-2698 v3 @ 2.30GHz
Stepping:              2
CPU MHz:               2297.339
BogoMIPS:              4594.67
Hypervisor vendor:     VMware
Virtualization type:   full
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              40960K
NUMA node0 CPU(s):     0-7
Flags:                 fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht syscall nx rdtscp lm constant_tsc arch_perfmon pebs bts nopl xtopology tsc_reliable nonstop_tsc aperfmperf pni pclmulqdq ssse3 cx16 pcid sse4_1 sse4_2 x2apic popcnt tsc_deadline_timer aes xsave avx hypervisor lahf_lm epb tsc_adjust dtherm ida arat pln pts

Config

input {
  udp {
    host => "0.0.0.0"
    port => 2055
    codec => netflow { versions => [9] netflow_definitions => "/etc/logstash/netflow.yaml" }
    type => "netflow"
    receive_buffer_bytes => 16777216
    workers => 6
  }
}

filter {

        if [netflow][in_bytes] == "0" {
                drop { }
        }

        mutate {
                rename => ["[netflow][ipv4_dst_addr]", "ipv4_dst_addr"]
        }

        mutate {
                rename => ["[netflow][ipv4_src_addr]", "ipv4_src_addr"]
        }

        mutate {
                rename => ["[netflow][in_bytes]", "in_bytes"]
        }

        mutate {
                rename => ["[netflow][app_id]", "app_id"]
        }

        mutate {
                remove_field => ["netflow"]
        }

        prune {
                whitelist_names => ["ipv4_dst_addr", "ipv4_src_addr", "app_id", "@timestamp", "in_bytes", "type"]
        }

        metrics {
                meter => "events"
                add_tag => "metrics"
        }

}

output {

if "metrics" in [tags] {
        elasticsearch {
                hosts => ["itddb-es1.nd.gov"]
                index => "metrics-%{+YYYY.MM.dd}"
         }
}

else {
        elasticsearch {
                hosts => ["itddb-es1.nd.gov"]
                index => "%{type}-%{+YYYY.MM.dd}"
         }
}

}

Input worker 0 randomly crashed after about six days...

Any advice would be appreciated. @jorritfolmer?

# cat /var/log/logstash/logstash-plain-2017-11-29.log
[2017-11-29T12:22:11,001][ERROR][logstash.inputs.udp      ] block_0$RUBY$__file__)", "org.jruby.runtime.CompiledBlock19.yield(CompiledBlock19.java:135)", "org.jruby.runtime.Block.yield(Block.java:142)", "org.jruby.RubyArray.eachCommon(RubyArray.java:1606)", "org.jruby.RubyArray.each(RubyArray.java:1613)", "org.jruby.RubyArray$INVOKER$i$0$0$each.call(RubyArray$INVOKER$i$0$0$each.gen)", "org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:143)", "org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:154)", "rubyjit.BinData::Struct$$do_read_1c4fd213e42dce2f793f696ded3811836a783d0a1975012498.__file__(/usr/share/logstash/vendor/bundle/jruby/1.9/gems/bindata-2.4.1/lib/bindata/struct.rb:139)", "rubyjit.BinData::Struct$$do_read_1c4fd213e42dce2f793f696ded3811836a783d0a1975012498.__file__(/usr/share/logstash/vendor/bundle/jruby/1.9/gems/bindata-2.4.1/lib/bindata/struct.rb)", "org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)", "org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)", "org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)", "rubyjit.BinData::ReadUntilEOFPlugin$$do_read_11c3a092d1caf48b046694b4f8bb5a4be54ac0451975012498.chained_0_rescue_1$RUBY$SYNTHETIC__file__(/usr/share/logstash/vendor/bundle/jruby/1.9/gems/bindata-2.4.1/lib/bindata/array.rb:310)", "rubyjit.BinData::ReadUntilEOFPlugin$$do_read_11c3a092d1caf48b046694b4f8bb5a4be54ac0451975012498.block_0$RUBY$__file__(/usr/share/logstash/vendor/bundle/jruby/1.9/gems/bindata-2.4.1/lib/bindata/array.rb:309)", "rubyjit$BinData::ReadUntilEOFPlugin$$do_read_11c3a092d1caf48b046694b4f8bb5a4be54ac0451975012498$block_0$RUBY$__file__.call(rubyjit$BinData::ReadUntilEOFPlugin$$do_read_11c3a092d1caf48b046694b4f8bb5a4be54ac0451975012498$block_0$RUBY$__file__)", "org.jruby.runtime.CompiledBlock19.yieldSpecificInternal(CompiledBlock19.java:117)", "org.jruby.runtime.CompiledBlock19.yieldSpecific(CompiledBlock19.java:92)", "org.jruby.runtime.Block.yieldSpecific(Block.java:111)", "org.jruby.RubyKernel.loop(RubyKernel.java:1479)", "org.jruby.RubyKernel$INVOKER$s$0$0$loop.call(RubyKernel$INVOKER$s$0$0$loop.gen)", "org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:316)", "org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:145)", "org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:154)", "rubyjit.BinData::ReadUntilEOFPlugin$$do_read_11c3a092d1caf48b046694b4f8bb5a4be54ac0451975012498.__file__(/usr/share/logstash/vendor/bundle/jruby/1.9/gems/bindata-2.4.1/lib/bindata/array.rb:307)", "rubyjit.BinData::ReadUntilEOFPlugin$$do_read_11c3a092d1caf48b046694b4f8bb5a4be54ac0451975012498.__file__(/usr/share/logstash/vendor/bundle/jruby/1.9/gems/bindata-2.4.1/lib/bindata/array.rb)", "org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)", "org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)", "org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)", "rubyjit.BinData::Struct$$do_read_1c4fd213e42dce2f793f696ded3811836a783d0a1975012498.block_0$RUBY$__file__(/usr/share/logstash/vendor/bundle/jruby/1.9/gems/bindata-2.4.1/lib/bindata/struct.rb:139)", "rubyjit$BinData::Struct$$do_read_1c4fd213e42dce2f793f696ded3811836a783d0a1975012498$block_0$RUBY$__file__.call(rubyjit$BinData::Struct$$do_read_1c4fd213e42dce2f793f696ded3811836a783d0a1975012498$block_0$RUBY$__file__)", "org.jruby.runtime.CompiledBlock19.yield(CompiledBlock19.java:135)", "org.jruby.runtime.Block.yield(Block.java:142)", "org.jruby.RubyArray.eachCommon(RubyArray.java:1606)", "org.jruby.RubyArray.each(RubyArray.java:1613)", "org.jruby.RubyArray$INVOKER$i$0$0$each.call(RubyArray$INVOKER$i$0$0$each.gen)", "org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:143)", "org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:154)", "rubyjit.BinData::Struct$$do_read_1c4fd213e42dce2f793f696ded3811836a783d0a1975012498.__file__(/usr/share/logstash/vendor/bundle/jruby/1.9/gems/bindata-2.4.1/lib/bindata/struct.rb:139)", "rubyjit.BinData::Struct$$do_read_1c4fd213e42dce2f793f696ded3811836a783d0a1975012498.__file__(/usr/share/logstash/vendor/bundle/jruby/1.9/gems/bindata-2.4.1/lib/bindata/struct.rb)", "org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)", "org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)", "org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)", "rubyjit.BinData::Base$$read_f3243693220f293515d4f1b4961720520f9fb7051975012498.block_0$RUBY$__file__(/usr/share/logstash/vendor/bundle/jruby/1.9/gems/bindata-2.4.1/lib/bindata/base.rb:147)", "rubyjit$BinData::Base$$read_f3243693220f293515d4f1b4961720520f9fb7051975012498$block_0$RUBY$__file__.call(rubyjit$BinData::Base$$read_f3243693220f293515d4f1b4961720520f9fb7051975012498$block_0$RUBY$__file__)", "org.jruby.runtime.CompiledBlock19.yieldSpecificInternal(CompiledBlock19.java:117)", "org.jruby.runtime.CompiledBlock19.yieldSpecific(CompiledBlock19.java:92)", "org.jruby.runtime.Block.yieldSpecific(Block.java:111)", "rubyjit.BinData::Base$$start_read_79c44a88ee47828c87af1769119f08be241597cf1975012498.chained_0_ensure_1$RUBY$__ensure__(/usr/share/logstash/vendor/bundle/jruby/1.9/gems/bindata-2.4.1/lib/bindata/base.rb:254)",

"rubyjit.BinData::Base$$start_read_79c44a88ee47828c87af1769119f08be241597cf1975012498.__file__(/usr/share/logstash/vendor/bundle/jruby/1.9/gems/bindata-2.4.1/lib/bindata/base.rb)", "rubyjit.BinData::Base$$start_read_79c44a88ee47828c87af1769119f08be241597cf1975012498.__file__(/usr/share/logstash/vendor/bundle/jruby/1.9/gems/bindata-2.4.1/lib/bindata/base.rb)", "org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:161)", "org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:316)", "org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:145)", "org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:154)", "rubyjit.BinData::Base$$read_f3243693220f293515d4f1b4961720520f9fb7051975012498.__file__(/usr/share/logstash/vendor/bundle/jruby/1.9/gems/bindata-2.4.1/lib/bindata/base.rb:145)", "rubyjit.BinData::Base$$read_f3243693220f293515d4f1b4961720520f9fb7051975012498.__file__(/usr/share/logstash/vendor/bundle/jruby/1.9/gems/bindata-2.4.1/lib/bindata/base.rb)", "org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:201)", "org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:336)", "org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:179)", "org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:183)", "rubyjit.BinData::Base$$read_e841921dc5de78f7b7c79511bb1bbc6653960c8c1975012498.__file__(/usr/share/logstash/vendor/bundle/jruby/1.9/gems/bindata-2.4.1/lib/bindata/base.rb:21)", "rubyjit.BinData::Base$$read_e841921dc5de78f7b7c79511bb1bbc6653960c8c1975012498.__file__(/usr/share/logstash/vendor/bundle/jruby/1.9/gems/bindata-2.4.1/lib/bindata/base.rb)", "org.jruby.ast.executable.AbstractScript.__file__(AbstractScript.java:42)", "org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:181)", "org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:168)", "rubyjit.LogStash::Codecs::Netflow$$decode_daae12b98c64e545e3ea7edb0b826a8eda6af61e1975012498.chained_0_rescue_1$RUBY$SYNTHETIC__file__(/usr/share/logstash/vendor/bundle/jruby/1.9/gems/logstash-codec-netflow-3.8.1/lib/logstash/codecs/netflow.rb:114)", "rubyjit.LogStash::Codecs::Netflow$$decode_daae12b98c64e545e3ea7edb0b826a8eda6af61e1975012498.__file__(/usr/share/logstash/vendor/bundle/jruby/1.9/gems/logstash-codec-netflow-3.8.1/lib/logstash/codecs/netflow.rb)", "rubyjit.LogStash::Codecs::Netflow$$decode_daae12b98c64e545e3ea7edb0b826a8eda6af61e1975012498.__file__(/usr/share/logstash/vendor/bundle/jruby/1.9/gems/logstash-codec-netflow-3.8.1/lib/logstash/codecs/netflow.rb)", "org.jruby.ast.executable.AbstractScript.__file__(AbstractScript.java:42)", "org.jruby.internal.runtime.methods.JittedMethod.call(JittedMethod.java:201)", "org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:177)", "org.jruby.runtime.callsite.CachingCallSite.callIter(CachingCallSite.java:188)", "org.jruby.ast.CallOneArgBlockNode.interpret(CallOneArgBlockNode.java:60)", "org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)", "org.jruby.ast.BlockNode.interpret(BlockNode.java:71)", "org.jruby.ast.WhileNode.interpret(WhileNode.java:131)", "org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)", "org.jruby.ast.RescueNode.executeBody(RescueNode.java:221)", "org.jruby.ast.RescueNode.interpret(RescueNode.java:116)", "org.jruby.ast.BeginNode.interpret(BeginNode.java:83)", "org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)", "org.jruby.ast.BlockNode.interpret(BlockNode.java:71)", "org.jruby.evaluator.ASTInterpreter.INTERPRET_METHOD(ASTInterpreter.java:74)", "org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:182)", "org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:203)", "org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:326)", "org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:170)", "org.jruby.ast.FCallOneArgNode.interpret(FCallOneArgNode.java:36)", "org.jruby.ast.NewlineNode.interpret(NewlineNode.java:105)", "org.jruby.evaluator.ASTInterpreter.INTERPRET_BLOCK(ASTInterpreter.java:112)", "org.jruby.runtime.Interpreted19Block.evalBlockBody(Interpreted19Block.java:206)", "org.jruby.runtime.Interpreted19Block.yield(Interpreted19Block.java:194)", "org.jruby.runtime.Interpreted19Block.call(Interpreted19Block.java:125)", "org.jruby.runtime.Block.call(Block.java:101)", "org.jruby.RubyProc.call(RubyProc.java:300)", "org.jruby.RubyProc.call(RubyProc.java:230)", "org.jruby.internal.runtime.RubyRunnable.run(RubyRunnable.java:103)", "java.lang.Thread.run(Thread.java:748)"]}

I've now suffered a complete crash of all UDP input workers this morning. Logstash itself did not crash, but all netflow processing obviously ceased. Logs do not show anything for this event.

I've checked for plugin updates again and I see 3.8.3 was released for the netflow plugin. Updated to 3.8.3 and am testing again.

Another silent crash happened. Upgraded to 3.9.0 and testing again.

Two more UDP input worker crashes over the weekend on 3.9.0.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.