Skip to content

Instantly share code, notes, and snippets.

[2020-05-07T00:32:32,696][ERROR][logstash.agent ] Failed to execute action {:action=>LogStash::PipelineAction::Reload/pipeline_id:mehe_1, :exception=>"NoMethodError", :message=>"undefined method `length' for nil:NilClass", :backtrace=>["/private/tmp/logstash-7.6.1/vendor/bundle/jruby/2.5.0/gems/treetop-1.6.10/lib/treetop/runtime/compiled_parser.rb:109:in `has_terminal?'", "/private/tmp/logstash-7.6.1/logstash-core/lib/logstash/compiler/lscl/lscl_grammar.rb:264:in `block in _nt_whitespace'", "org/jruby/RubyKernel.java:1446:in `loop'", "/private/tmp/logstash-7.6.1/logstash-core/lib/logstash/compiler/lscl/lscl_grammar.rb:263:in `_nt_whitespace'", "/private/tmp/logstash-7.6.1/logstash-core/lib/logstash/compiler/lscl/lscl_grammar.rb:124:in `block in _nt_comment'", "org/jruby/RubyKernel.java:1446:in `loop'", "/private/tmp/logstash-7.6.1/logstash-core/lib/logstash/compiler/lscl/lscl_grammar.rb:122:in `_nt_comment'", "/private/tmp/logstash-7.6.1/logstash-core/lib/logstash/compiler/lscl/lscl_grammar.rb:224:i
/tmp/logstash-7.6.0 ❯ bin/logstash -i irb
Sending Logstash logs to /tmp/logstash-7.6.0/logs which is now configured via log4j2.properties
irb(main):001:0> grok_class = LogStash::Plugin.lookup("filter", "grok")
=> LogStash::Filters::Grok
irb(main):002:0> grok = grok_class.new("match" => { "message" => [ "%{WORD:word}", "%{NUMBER:num}" ] })
=> <LogStash::Filters::Grok match=>{"message"=>["%{WORD:word}", "%{NUMBER:num}"]}, id=>"grok_1a49e57c-96f1-4381-b421-0fb93adf6eec", enable_metric=>true, periodic_flush=>false, patterns_files_glob=>"*", break_on_match=>true, named_captures_only=>true, keep_empty_captures=>false, tag_on_failure=>["_grokparsefailure"], timeout_millis=>30000, timeout_scope=>"pattern", tag_on_timeout=>"_groktimeout">
irb(main):003:0> grok.register
# encoding: utf-8
# disclaimer: this code was ripped off from Jordan Sissel's [lumberjack client](https://github.com/elastic/ruby-lumberjack/blob/master/lib/lumberjack/client.rb)
require "socket"
require "zlib"
require "json"
module Lumberjack
SEQUENCE_MAX = (2**32-1).freeze
class Socket
bash-4.2$ jstack 1
2019-11-25 10:12:42
Full thread dump OpenJDK 64-Bit Server VM (11.0.5+10-LTS mixed mode, sharing):
Threads class SMR info:
_java_thread_list=0x00007f1b90001c60, length=17, elements={
0x00007f1bd4013800, 0x00007f1bd409f800, 0x00007f1bd40a1800, 0x00007f1bd40a7000,
0x00007f1bd40a9000, 0x00007f1bd40ab000, 0x00007f1bd40ad000, 0x00007f1bd40db800,
0x00007f1bd40f3000, 0x00007f1bd4415000, 0x00007f1b4c013000, 0x00007f1b4c015800,
0x00007f1b4c017800, 0x00007f1b4c019800, 0x00007f1bd4a89800, 0x00007f1bd4349800,
bash-4.2$ jstack 1
2019-11-25 10:12:42
Full thread dump OpenJDK 64-Bit Server VM (11.0.5+10-LTS mixed mode, sharing):
Threads class SMR info:
_java_thread_list=0x00007f1b90001c60, length=17, elements={
0x00007f1bd4013800, 0x00007f1bd409f800, 0x00007f1bd40a1800, 0x00007f1bd40a7000,
0x00007f1bd40a9000, 0x00007f1bd40ab000, 0x00007f1bd40ad000, 0x00007f1bd40db800,
0x00007f1bd40f3000, 0x00007f1bd4415000, 0x00007f1b4c013000, 0x00007f1b4c015800,
0x00007f1b4c017800, 0x00007f1b4c019800, 0x00007f1bd4a89800, 0x00007f1bd4349800,
input {
generator { message => "!" }
generator { message => "!" }
generator { message => "!" }
generator { message => "!" }
generator { message => "!" }
generator { message => "!" }
generator { message => "!" }
generator { message => "!" }
generator { message => "!" }
This file has been truncated, but you can view the full file.
2019-11-03 09:35:10
Full thread dump OpenJDK 64-Bit Server VM (11.0.1+13 mixed mode):
Threads class SMR info:
_java_thread_list=0x00007f917dcd2fc0, length=81, elements={
0x00007f917f00b000, 0x00007f918085c000, 0x00007f918085f000, 0x00007f917f813000,
0x00007f917f805800, 0x00007f9180857000, 0x00007f9180861000, 0x00007f9180862800,
0x00007f917e072000, 0x00007f917f199800, 0x00007f9182bd3800, 0x00007f9180a08800,
0x00007f9180941800, 0x00007f9181a80800, 0x00007f91818b9800, 0x00007f9181027000,
0x00007f9181a2a800, 0x00007f91810bd000, 0x00007f91800cc800, 0x00007f91821ca800,
diff --git a/src/main/java/com/jrjackson/JrJacksonBase.java b/src/main/java/com/jrjackson/JrJacksonBase.java
index 5b1748e..e000915 100644
--- a/src/main/java/com/jrjackson/JrJacksonBase.java
+++ b/src/main/java/com/jrjackson/JrJacksonBase.java
@@ -63,7 +63,7 @@ public class JrJacksonBase extends RubyObject {
}
provider = RubyJacksonModule.createProvider(simpleFormat);
} else {
- provider = RubyJacksonModule.createProvider();
+ provider = RubyJacksonModule.getDefaultProvider();
@jsvd
jsvd / a.txt
Last active September 9, 2019 11:12
% gem list | grep jrjackson
jrjackson (0.4.9 java, 0.4.8 java, 0.4.7 java)
% ruby -v
jruby 9.2.5.0 (2.5.0) 2018-12-06 6d5a228 OpenJDK 64-Bit Server VM 11.0.1+13 on 11.0.1+13 +jit [darwin-x86_64]
@jsvd
jsvd / log4j2.properties
Created August 22, 2019 10:33
how to filter out an multi line error message in log4j2 using RegexFilter
appender.console.type = Console
appender.console.name = plain_console
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = [%d{ISO8601}][%-5p][%-25c] %m%n
appender.console.filter.no_json_error.type = RegexFilter
appender.console.filter.no_json_error.regex = (?s).*JSON parse error.*
appender.console.filter.no_json_error.onMatch = DENY
appender.console.filter.no_json_error.onMismatch = ACCEPT