elastic / elastic/logstash

Using --path.plugins flag causes exception

Open
#6,074 3 comments 6 reactions 0 assignees View on GitHub
v5.0.0-rc1
Dominant language
Java
Stars
14.9k
Forks
3.5k
Avg merge
19h 14m
Merged PRs (30d)
63

Description

Reproducing with Logstash 5.0.0rc1

```
% bin/logstash --path.plugins foo
NameError: `@path.plugins' is not allowable as an instance variable name
instance_variable_get at org/jruby/RubyKernel.java:2249
get at /home/jls/build/logstash-5.0.0-rc1/vendor/bundle/jruby/1.9/gems/clamp-0.6.5/lib/clamp/attribute/instance.rb:21
_append at /home/jls/build/logstash-5.0.0-rc1/vendor/bundle/jruby/1.9/gems/clamp-0.6.5/lib/clamp/attribute/instance.rb:41
append_to_path.plugins at /home/jls/build/logstash-5.0.0-rc1/vendor/bundle/jruby/1.9/gems/clamp-0.6.5/lib/clamp/attribute/declaration.rb:41
take at /home/jls/build/logstash-5.0.0-rc1/vendor/bundle/jruby/1.9/gems/clamp-0.6.5/lib/clamp/attribute/instance.rb:57
parse_options at /home/jls/build/logstash-5.0.0-rc1/vendor/bundle/jruby/1.9/gems/clamp-0.6.5/lib/clamp/option/parsing.rb:32
parse at /home/jls/build/logstash-5.0.0-rc1/vendor/bundle/jruby/1.9/gems/clamp-0.6.5/lib/clamp/command.rb:52
run at /home/jls/build/logstash-5.0.0-rc1/vendor/bundle/jruby/1.9/gems/clamp-0.6.5/lib/clamp/command.rb:66
run at /home/jls/build/logstash-5.0.0-rc1/logstash-core/lib/logstash/runner.rb:174
run at /home/jls/build/logstash-5.0.0-rc1/vendor/bundle/jruby/1.9/gems/clamp-0.6.5/lib/clamp/command.rb:132
(root) at /home/jls/build/logstash-5.0.0-rc1/lib/bootstrap/environment.rb:68
```

I believe this bug to be in `clamp` (sorta, we're asking it to create instance variables with dots in their names, not great...)

We currently pin to Clamp 0.6.5. I tested with newest Clamp and this problem is resolved, in my testing.
## Workaround

Set `path.plugins` in `logstash.yml` instead of via flags.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.