ERROR: Jun 24 23:04:13 odroid logstash[30841]: [2019-06-24T23:04:13,339][ERROR][org.logstash.Logstash ] java.lang.IllegalStateException: Logstash stopped processing because of an error: (LoadError) load error: ffi/ffi -- java.lang.NullPointerException: null
Very similar/maybe the same but on a different env as #10755
I worked with some JRuby folks, aka @Headius , debugging and standalone JRuby was running fine on the device. This leads him to believe "it is likely some odd packaging or configuration issue with their embedded JRuby"
JRuby folks standing by to assist here. As @Trevor159 explained, we did not have any issues getting a plain JRuby 9.2.7.0 distribution to start up and use FFI, so it seems something else is amiss when JRuby is packaged in Logstash.
I may have access to an armv7l device for investigation, if necessary.
came here to +1 on this as well, I can use the vendored jruby ffi/ffi just fine when requring/invoking from vendor/jruby/bin/{jruby,jirb}, but launching from ./bin/logstash always results in NPE originating somewhere near ffi/ffi.
openjdk (8|11) armv7l linux+logstash 7.2 + logstash-core/lib/jars/jruby-complete-9.2.7.0 jar
previously, I was able to work around this by opening the jruby-complete .jar, forcibly copying lib/ruby/stdlib/ffi/platform/arm-linux/types.conf to lib/ruby/stdlib/ffi/platform/arm-linux/platform.conf, and then re-jarring. doing the same from vendor/jruby/lib/ruby/stdlib/ffi/platform/arm-linux/ doesn't work.
for the brave and/or foolish (or @Trevor159) here's the re-jarred jar you can drop into logstash-core/lib/jars and be on your way.
came here to +1 on this as well, I also come the same problem on arm8+openjdk8+logstash6.8.1.
i hava solved this on arm8+openjdk8+logstash6.8.1.
by copying the
jruby-complete-9.2.7.0.jarMETA-INFjruby.homelibrubystdlibffiplatformaarch64-linux
types.conf file to platform.conf.
u can use 'uname -a ' to find where is the types.conf folder u need to replace.
such as:
# uname -a
aarch64 aarch64 aarch64 GNU/Linux
then u get aarch64-linux but not arm-linux. @ryanbreed-tp
Can you open a JRuby issue about this? It sounds like a fairly easy patch.
I've just fixed the issue with this script:
https://gist.github.com/alexalouit/a857a6de10dfdaf7485f7c0cccadb98c
I have now logstash 7.3.2 in a Raspberry Pi 4 with Buster :tada:
Can you open a JRuby issue about this? It sounds like a fairly easy patch.
@headius What is the current status? Can you please link the JRuby issue. I have the same issue on a Rock64 with aarch64.
@loehel The Logstash team is currently working on aarch64 support in a future release.
There is a meta issue here, which you can follow our progress on. Any help testing would be gratefully received.
@loehel The Logstash team is currently working on aarch64 support in a future release.
There is a meta issue here, which you can follow our progress on. Any help testing would be gratefully received.
Thanks for your quick reply. Please let me know if I can help. :-) Great work guys.
@jloehel Recent JRuby releases should work fine on AArch64. The trickier bit here is that some deployments (like LogStash, I believe) use the all-in-one "jruby-complete.jar" which must be able to unpack some native libraries when it runs. On some systems that process fails (due to filesystem permissions or security restrictions, for example) so some of our functionality is reduced.
Given that you're trying to run LogStash I would recommend continuing to work through this issue tracker, and if at some point it's more clear that it's a JRuby issue we'll be standing by to help.
@jloehel Recent JRuby releases should work fine on AArch64. The trickier bit here is that some deployments (like LogStash, I believe) use the all-in-one "jruby-complete.jar" which must be able to unpack some native libraries when it runs. On some systems that process fails (due to filesystem permissions or security restrictions, for example) so some of our functionality is reduced.
Given that you're trying to run LogStash I would recommend continuing to work through this issue tracker, and if at some point it's more clear that it's a JRuby issue we'll be standing by to help.
Thanks for your reply headius. I am using now these ansible tasks: https://gist.github.com/jloehel/c9c7fac7a1e9e6bd732268e1f1bea9b7 It works fine for me.
But it would be nice to get rid of this workaround. :-)
I believe this should be working now, with the 7.9.0 release of Logstash.
This appeared to have been caused by jruby/jruby#6219, where during ffi loading platform configuration files, an unhandled NPE would be thrown, rather than the handled file NotFound when attempting to load platform.conf, resulting in the error shown here.
This was fixed by this commit, included in the version of jruby shipped with logstash 7.9.0.
Please let us know if this fixes your problem
Most helpful comment
@loehel The Logstash team is currently working on aarch64 support in a future release.
There is a meta issue here, which you can follow our progress on. Any help testing would be gratefully received.