logstash-plugins/logstash-input-salesforce

A plugin had an unrecoverable error. Will restart this plugin

djon-zel opened this issue · 1 comments

Hello.
Please. Can you finde trouble in my config.
I use this plugin with Logstash 2.4.1. All working good.
logstash-input-salesforce (3.0.5)
os: linux debian 8

Now we try migrate configuration to Logstah 6.4.2
logstash-input-salesforce (3.0.5)
os: linux debian 9
When config contain(../logstash/config.d) more than one inputs with the same plugins or differance config files with the same plugins, for example
input {
salesforce {
...
}
salesforce {
...
}
salesforce {
...
}
}

I see error in log file.

[2018-10-26T15:29:15,494][ERROR][logstash.pipeline ] A plugin had an unrecoverable error. Will restart this plugin.
Pipeline_id:main
Plugin: <LogStash::Inputs::Salesforce password=>"XXXXXXXXXXXXXX", sfdc_fields=>["Id", "CreatedDate", "CreatedById", "RecordTypeId", "Status", "IsConverted", "ConvertedDate", "Broker__c", "FilialIdGlob__c", "GoodLead__c", "Star_Gategory__c", "CallCenterStatus__c"], sfdc_object_name=>"Lead", security_token=>"XXXXXX", use_test_sandbox=>false, client_secret=>"XXXXXXXXXXX", id=>"83cc5d78ba08ab684befd4694f92d6d1861670a089ffbea5d797942ac31c597a", type=>"sf_Lead", sfdc_filters=>"CreatedDate >= 2018-10-26T14:00:00Z AND CreatedDate < 2018-10-26T15:00:00Z AND IsDeleted = false", client_id=>"XXXX", username=>"XXX@fxclub.org", enable_metric=>true, codec=><LogStash::Codecs::Plain id=>"plain_d8f495ba-96f2-445c-bd79-abacc88018ca", enable_metric=>true, charset=>"UTF-8">, to_underscores=>false>
Error:
Exception: Java::JavaLang::NullPointerException
Stack: org.jruby.RubyString.getStringForPattern(RubyString.java:3741)
org.jruby.RubyString.asRegexpArg(RubyString.java:2405)
org.jruby.RubyString.subBangNoIter(RubyString.java:2445)
org.jruby.RubyString.sub_bang(RubyString.java:2398)
org.jruby.RubyString$INVOKER$i$sub_bang.call(RubyString$INVOKER$i$sub_bang.gen)
org.jruby.internal.runtime.methods.JavaMethod$JavaMethodOneOrTwoOrNBlock.call(JavaMethod.java:402)
uri_3a_classloader_3a_.META_minus_INF.jruby_dot_home.lib.ruby.stdlib.date.format.RUBY$method$parse_us$0(uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/date/format.rb:581)
uri_3a_classloader_3a.META_minus_INF.jruby_dot_home.lib.ruby.stdlib.date.format.RUBY$method$parse$0(uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/date/format.rb:850)
uri_3a_classloader_3a.META_minus_INF.jruby_dot_home.lib.ruby.stdlib.time.RUBY$method$parse$0(uri:classloader:/META-INF/jruby.home/lib/ruby/stdlib/time.rb:363)
usr.share.logstash.vendor.bundle.jruby.$2_dot_3_dot_0.gems.logstash_minus_input_minus_salesforce_minus_3_dot_0_dot_5.lib.logstash.inputs.salesforce.RUBY$method$format_time$0(/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-input-salesforce-3.0.5/lib/logstash/inputs/salesforce.rb:180)
usr.share.logstash.vendor.bundle.jruby.$2_dot_3_dot_0.gems.logstash_minus_input_minus_salesforce_minus_3_dot_0_dot_5.lib.logstash.inputs.salesforce.RUBY$block$run$2(/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-input-salesforce-3.0.5/lib/logstash/inputs/salesforce.rb:109)
org.jruby.runtime.CompiledIRBlockBody.yieldDirect(CompiledIRBlockBody.java:156)
org.jruby.runtime.BlockBody.yield(BlockBody.java:114)
org.jruby.runtime.Block.yield(Block.java:165)
org.jruby.RubyArray.each(RubyArray.java:1734)
usr.share.logstash.vendor.bundle.jruby.$2_dot_3_dot_0.gems.logstash_minus_input_minus_salesforce_minus_3_dot_0_dot_5.lib.logstash.inputs.salesforce.RUBY$block$run$1(/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-input-salesforce-3.0.5/lib/logstash/inputs/salesforce.rb:102)
org.jruby.runtime.CompiledIRBlockBody.yieldDirect(CompiledIRBlockBody.java:156)
org.jruby.runtime.BlockBody.yield(BlockBody.java:114)
org.jruby.runtime.Block.yield(Block.java:165)
org.jruby.ir.runtime.IRRuntimeHelpers.yield(IRRuntimeHelpers.java:415)
org.jruby.ir.targets.YieldSite.yield(YieldSite.java:87)
usr.share.logstash.vendor.bundle.jruby.$2_dot_3_dot_0.gems.restforce_minus_2_dot_4_dot_2.lib.restforce.collection.RUBY$block$each$1(/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/restforce-2.4.2/lib/restforce/collection.rb:14)
org.jruby.runtime.CompiledIRBlockBody.yieldDirect(CompiledIRBlockBody.java:156)
org.jruby.runtime.BlockBody.yield(BlockBody.java:114)
org.jruby.runtime.Block.yield(Block.java:165)
org.jruby.RubyArray.each(RubyArray.java:1734)
usr.share.logstash.vendor.bundle.jruby.$2_dot_3_dot_0.gems.restforce_minus_2_dot_4_dot_2.lib.restforce.collection.RUBY$method$each$0(/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/restforce-2.4.2/lib/restforce/collection.rb:14)
usr.share.logstash.vendor.bundle.jruby.$2_dot_3_dot_0.gems.logstash_minus_input_minus_salesforce_minus_3_dot_0_dot_5.lib.logstash.inputs.salesforce.RUBY$method$run$0(/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/logstash-input-salesforce-3.0.5/lib/logstash/inputs/salesforce.rb:99)
usr.share.logstash.logstash_minus_core.lib.logstash.pipeline.RUBY$method$inputworker$0(/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:409)
usr.share.logstash.logstash_minus_core.lib.logstash.pipeline.RUBY$method$inputworker$0$VARARGS(/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb)
org.jruby.internal.runtime.methods.CompiledIRMethod.call(CompiledIRMethod.java:77)
org.jruby.internal.runtime.methods.MixedModeIRMethod.call(MixedModeIRMethod.java:93)
org.jruby.ir.targets.InvokeSite.invoke(InvokeSite.java:145)
usr.share.logstash.logstash_minus_core.lib.logstash.pipeline.RUBY$block$start_input$1(/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:403)
org.jruby.runtime.CompiledIRBlockBody.callDirect(CompiledIRBlockBody.java:145)
org.jruby.runtime.IRBlockBody.call(IRBlockBody.java:71)
org.jruby.runtime.Block.call(Block.java:124)
org.jruby.RubyProc.call(RubyProc.java:289)
org.jruby.RubyProc.call(RubyProc.java:246)
org.jruby.internal.runtime.RubyRunnable.run(RubyRunnable.java:104)
java.lang.Thread.run(Thread.java:748)

But If I use only one input confuguration all working good.
input {
salesforce {
client_id => "XXX"
client_secret => "XXX"
username => "XXX@fxclub.org"
password => "XXX"
security_token => "XXX"
use_test_sandbox => false
sfdc_object_name => "InboundMessage__c"
tags => ["sf_InboundMessage__c"]
sfdc_fields => [Id, CreatedDate, DOCUMENT_TYPE__c, ENTITY_ACTION__c, ENTITY_STATUS__c, ENTITY_TYPE__c, Error__c, MESSAGE_CREATED__c, MESSAGE_PRODUCER__c, MESSAGE_TYPE__c, Processed__c]
sfdc_filters => "CreatedDate >= 2018-09-20T00:00:00 AND CreatedDate < 2018-09-21T00:00:00"
}

Hi djon-zel, are you using proxy to reach salesforce from logstash ?
if it is please suggest which parameter are using ?
Regards
Naresh