Limit on number of convert statements?

When I use mutate convert with 45 different convert statements logstash fails to start.
When I split it into two different convert groups it works fine. Below is error message when it fails. Seems like there is limit on how many conversions can be done by single convert => {}

[2019-09-25T14:12:20,601][ERROR][logstash.agent "PIPELINE CODE REMOVED" convert => {", :backtrace=>["/usr/share/logstash/logstash-core/lib/logstash/compiler/lscl.rb:184:in validate!'", "/usr/share/logstash/logstash-core/lib/logstash/compiler/lscl.rb:202:inexpr'", "/usr
/share/logstash/logstash-core/lib/logstash/compiler/lscl.rb:134:in expr'", "org/jruby/RubyArray.java:2577:inmap'", "/usr/share/logstash/logstash-core/lib/logstash/compiler/lscl.rb:98:in expr_attribu tes'", "/usr/share/logstash/logstash-core/lib/logstash/compiler/lscl.rb:76:inexpr'", "org/jruby/RubyArray.java:2577:in map'", "/usr/share/logstash/logstash-core/lib/logstash/compiler/lscl.rb:284:in
expr_body'", "/usr/share/logstash/logstash-core/lib/logstash/compiler/lscl.rb:227:in block in expr'", "org/jruby/RubyArray.java:1792:ineach'", "/usr/share/logstash/logstash-core/lib/logstash/compiler
/lscl.rb:223:in expr'", "org/jruby/RubyArray.java:2577:inmap'", "/usr/share/logstash/logstash-core/lib/logstash/compiler/lscl.rb:69:in expr'", "/usr/share/logstash/logstash-core/lib/logstash/compile r/lscl.rb:48:inblock in compile'", "org/jruby/RubyArray.java:1792:in each'", "/usr/share/logstash/logstash-core/lib/logstash/compiler/lscl.rb:46:incompile'", "/usr/share/logstash/logstash-core/lib/
logstash/compiler.rb:45:in compile_imperative'", "/usr/share/logstash/logstash-core/lib/logstash/compiler.rb:49:incompile_graph'", "/usr/share/logstash/logstash-core/lib/logstash/compiler.rb:11:in b lock in compile_sources'", "org/jruby/RubyArray.java:2577:inmap'", "/usr/share/logstash/logstash-core/lib/logstash/compiler.rb:10:in compile_sources'", "org/logstash/execution/AbstractPipelineExt.java:151:ininitialize'", "org/logstash/execution/JavaBasePipelineExt.java:47:in initialize'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:24:ininitialize'", "/usr/share/logstash/l
ogstash-core/lib/logstash/pipeline_action/create.rb:36:in execute'", "/usr/share/logstash/logstash-core/lib/logstash/agent.rb:325:inblock in converge_state'"]}

That is a check for duplicate values. You will get that stack trace from

 mutate { convert => { "foo" => integer "foo" => integer } }

Is it possible that splitting the mutate into two works because it puts one of the duplicates into each of the two mutates?

1 Like

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