Skip to content

Pipeline crash when the aggregate maps is loaded from a file.aggregate #122

Description

@ysgadi

Logstash information:

  1. Logstash version: 7.17.5
  2. logstash-filter-aggregate version: 2.10.0
  3. Logstash installation source: docker => elastic/logstash:7.17.5
  4. Bundled JVM used

OS version: Linux x86_64 x86_64 x86_64 GNU/Linux

Steps to reproduce:

1.Stop logstash pipeline with kill - 15 pid SIGTERM => This will automatically save the aggregate maps to /usr/share/logstash/data/plugins/inputs/file/file.aggregate
2.Start logstash pipeline => This willy load aggregate maps (file.aggregate)
3.Pipeline crash with following error:

worker0 ERROR An exception occurred processing Appender plain_console java.lang.NullPointerException
at org.logstash.ext.JrubyTimestampExtLibrary$RubyTimestamp.ruby_to_iso8601(JrubyTimestampExtLibrary.java:131)
at org.logstash.ext.JrubyTimestampExtLibrary$RubyTimestamp.ruby_inspect(JrubyTimestampExtLibrary.java:125)

at org.logstash.ext.JrubyTimestampExtLibrary$RubyTimestamp$INVOKER$i$0$0$ruby_inspect.call(JrubyTimestampExtLibrary$RubyTimestamp$INVOKER$i$0$0$ruby_inspect.gen)
at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:355)
at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:144)
at org.jruby.RubyBasicObject.rbInspect(RubyBasicObject.java:1187)
at org.jruby.RubyObject.inspect(RubyObject.java:443)
at org.jruby.RubyHash$4.visit(RubyHash.java:855)
at org.jruby.RubyHash$4.visit(RubyHash.java:851)
at org.jruby.RubyHash.visitLimited(RubyHash.java:698)
at org.jruby.RubyHash.visitAll(RubyHash.java:683)
at org.jruby.RubyHash.inspectHash(RubyHash.java:846)
at org.jruby.RubyHash.inspect(RubyHash.java:883)
at org.jruby.RubyHash$INVOKER$i$0$0$inspect.call(RubyHash$INVOKER$i$0$0$inspect.gen)
at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:355)
at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:144)
at org.jruby.RubyBasicObject.rbInspect(RubyBasicObject.java:1187)
at org.jruby.RubyObject.inspect(RubyObject.java:443)
at org.jruby.RubyHash$4.visit(RubyHash.java:855)
at org.jruby.RubyHash$4.visit(RubyHash.java:851)
at org.jruby.RubyHash.visitLimited(RubyHash.java:698)
at org.jruby.RubyHash.visitAll(RubyHash.java:683)
at org.jruby.RubyHash.inspectHash(RubyHash.java:846)
at org.jruby.RubyHash.inspect(RubyHash.java:883)
at org.jruby.RubyHash.to_s(RubyHash.java:945)
at org.jruby.RubyHash$INVOKER$i$0$0$to_s.call(RubyHash$INVOKER$i$0$0$to_s.gen)
at org.jruby.runtime.callsite.CachingCallSite.cacheAndCall(CachingCallSite.java:355)
at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:144)
at org.jruby.RubyObject.toRubyString(RubyObject.java:245)
at org.jruby.RubyObject.toString(RubyObject.java:254)
at java.base/java.lang.String.valueOf(String.java:2951)
at java.base/java.lang.StringBuilder.append(StringBuilder.java:172)
at org.logstash.log.StructuredMessage.getFormattedMessage(StructuredMessage.java:86)
at org.apache.logging.log4j.core.pattern.MessagePatternConverter$SimpleMessagePatternConverter.format(MessagePatternConverter.java:122)
at org.apache.logging.log4j.core.pattern.PatternFormatter.format(PatternFormatter.java:44)
at org.apache.logging.log4j.core.layout.PatternLayout$PatternFormatterPatternSerializer.toSerializable(PatternLayout.java:385)
at org.apache.logging.log4j.core.layout.PatternLayout.toText(PatternLayout.java:241)
at org.apache.logging.log4j.core.layout.PatternLayout.encode(PatternLayout.java:226)
at org.apache.logging.log4j.core.layout.PatternLayout.encode(PatternLayout.java:60)
at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.directEncodeEvent(AbstractOutputStreamAppender.java:197)
at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.tryAppend(AbstractOutputStreamAppender.java:190)
at org.apache.logging.log4j.core.appender.AbstractOutputStreamAppender.append(AbstractOutputStreamAppender.java:181)
at org.apache.logging.log4j.core.config.AppenderControl.tryCallAppender(AppenderControl.java:161)
at org.apache.logging.log4j.core.config.AppenderControl.callAppender0(AppenderControl.java:134)
at org.apache.logging.log4j.core.config.AppenderControl.callAppenderPreventRecursion(AppenderControl.java:125)
at org.apache.logging.log4j.core.config.AppenderControl.callAppender(AppenderControl.java:89)
at org.apache.logging.log4j.core.config.LoggerConfig.callAppenders(LoggerConfig.java:542)
at org.apache.logging.log4j.core.config.LoggerConfig.processLogEvent(LoggerConfig.java:500)
at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:483)
at org.apache.logging.log4j.core.config.LoggerConfig.log(LoggerConfig.java:417)
at org.apache.logging.log4j.core.config.AwaitCompletionReliabilityStrategy.log(AwaitCompletionReliabilityStrategy.java:82)
at org.apache.logging.log4j.core.Logger.log(Logger.java:161)
at org.apache.logging.log4j.spi.AbstractLogger.tryLogMessage(AbstractLogger.java:2205)
at org.apache.logging.log4j.spi.AbstractLogger.logMessageTrackRecursion(AbstractLogger.java:2159)
at org.apache.logging.log4j.spi.AbstractLogger.logMessageSafely(AbstractLogger.java:2142)
at org.apache.logging.log4j.spi.AbstractLogger.logMessage(AbstractLogger.java:2034)
at org.apache.logging.log4j.spi.AbstractLogger.logIfEnabled(AbstractLogger.java:1899)
at org.apache.logging.log4j.spi.AbstractLogger.error(AbstractLogger.java:866)
at org.logstash.log.LoggerExt.rubyError(LoggerExt.java:127)
at org.logstash.log.LoggerExt$INVOKER$i$0$1$rubyError.call(LoggerExt$INVOKER$i$0$1$rubyError.gen)
at org.jruby.internal.runtime.methods.JavaMethod$JavaMethodN.call(JavaMethod.java:819)
at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:208)
at org.jruby.internal.runtime.methods.JavaMethod$JavaMethodN.call(JavaMethod.java:835)
at org.jruby.ir.targets.InvokeSite.invoke(InvokeSite.java:207)
at usr.share.logstash.vendor.bundle.jruby.$2_dot_5_dot_0.gems.logstash_minus_filter_minus_aggregate_minus_2_dot_10_dot_0.lib.logstash.filters.aggregate.RUBY$block$filter$1(/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-filter-aggregate-2.10.0/lib/logstash/filters/aggregate.rb:220)
at org.jruby.runtime.CompiledIRBlockBody.yieldDirect(CompiledIRBlockBody.java:148)
at org.jruby.runtime.IRBlockBody.yieldSpecific(IRBlockBody.java:66)
at org.jruby.runtime.Block.yieldSpecific(Block.java:153)
at org.jruby.ext.thread.Mutex.synchronize(Mutex.java:164)
at usr.share.logstash.vendor.bundle.jruby.$2_dot_5_dot_0.gems.logstash_minus_filter_minus_aggregate_minus_2_dot_10_dot_0.lib.logstash.filters.aggregate.RUBY$method$filter$0(/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-filter-aggregate-2.10.0/lib/logstash/filters/aggregate.rb:181)
at org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:106)
at org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:140)
at org.jruby.ir.targets.InvokeSite.fail(InvokeSite.java:278)
at usr.share.logstash.logstash_minus_core.lib.logstash.filters.base.RUBY$method$do_filter$0(/usr/share/logstash/logstash-core/lib/logstash/filters/base.rb:159)
at org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:106)
at org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:140)
at org.jruby.ir.targets.InvokeSite.fail(InvokeSite.java:278)
at usr.share.logstash.logstash_minus_core.lib.logstash.filters.base.RUBY$block$multi_filter$1(/usr/share/logstash/logstash-core/lib/logstash/filters/base.rb:178)
at org.jruby.runtime.CompiledIRBlockBody.yieldDirect(CompiledIRBlockBody.java:148)
at org.jruby.runtime.BlockBody.yield(BlockBody.java:106)
at org.jruby.runtime.Block.yield(Block.java:184)
at org.jruby.RubyArray.each(RubyArray.java:1821)
at usr.share.logstash.logstash_minus_core.lib.logstash.filters.base.RUBY$method$multi_filter$0(/usr/share/logstash/logstash-core/lib/logstash/filters/base.rb:175)
at org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:106)
at org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:140)
at org.jruby.internal.runtime.methods.DynamicMethod.call(DynamicMethod.java:200)
at org.logstash.config.ir.compiler.FilterDelegatorExt.doMultiFilter(FilterDelegatorExt.java:127)
at org.logstash.config.ir.compiler.AbstractFilterDelegatorExt.multiFilter(AbstractFilterDelegatorExt.java:134)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions