fail to initialize the plugin with wrong number of arguments (given 1, expected 0)
kaisecheng opened this issue · 0 comments
kaisecheng commented
Since logstash upgrade ruby from 2.6 to 3.0, this plugin fails to initialize. According to update to JRuby 9.4, method clone
need to rewrite to clone(*args)
The plugin has defined its clone, which overwrites the base class clone.
The codec class is wrapped by Delegator, hence fails to initialize with clone(freeze: )
here
I believe it is not desired to redefine the method.
Log
[2023-12-12T10:53:05,136][ERROR][logstash.javapipeline ][main][netflow] A plugin had an unrecoverable error. Will restart this plugin.
Pipeline_id:main
Plugin: <LogStash::Inputs::Udp codec=><LogStash::Codecs::Netflow id=>"netflow_7a6737e7-8f36-4b23-8b18-5858e94d275b", enable_metric=>true, cache_ttl=>4000, target=>"netflow", include_flowset_id=>false, versions=>[5, 9, 10]>, id=>"netflow", port=>2055, tags=>["netflow"], enable_metric=>true, host=>"0.0.0.0", buffer_size=>65536, workers=>2, queue_size=>2000>
Error: wrong number of arguments (given 1, expected 0)
Exception: ArgumentError
Stack: /usr/share/logstash/vendor/bundle/jruby/3.1.0/gems/logstash-codec-netflow-4.3.0/lib/logstash/codecs/netflow.rb:60:in `clone'
/usr/share/logstash/vendor/jruby/lib/ruby/stdlib/delegate.rb:226:in `initialize_clone'
org/jruby/RubyKernel.java:2187:in `clone'
/usr/share/logstash/vendor/bundle/jruby/3.1.0/gems/logstash-input-udp-3.5.0/lib/logstash/inputs/udp.rb:76:in `block in run'
org/jruby/RubyArray.java:2809:in `map'
/usr/share/logstash/vendor/bundle/jruby/3.1.0/gems/logstash-input-udp-3.5.0/lib/logstash/inputs/udp.rb:74:in `run'
/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:414:in `inputworker'
/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:405:in `block in start_input'
Relates: elastic/logstash#14861