logstash-plugins / logstash-input-salesforce

Logstash input for pulling objects from salesforce
Apache License 2.0
16 stars 29 forks source link

A plugin had an unrecoverable error. Will restart this plugin #14

Open djon-zel opened 5 years ago

djon-zel commented 5 years ago

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", "Brokerc", "FilialIdGlobc", "GoodLead__c", "Star_Gategoryc", "CallCenterStatusc"], 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_classloader3a.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 => "InboundMessagec" tags => ["sf_InboundMessagec"] sfdc_fields => [Id, CreatedDate, DOCUMENT_TYPEc, ENTITY_ACTIONc, ENTITY_STATUSc, ENTITY_TYPEc, Errorc, MESSAGE_CREATEDc, MESSAGE_PRODUCER__c, MESSAGE_TYPEc, Processedc] sfdc_filters => "CreatedDate >= 2018-09-20T00:00:00 AND CreatedDate < 2018-09-21T00:00:00" }

nareshahi commented 3 years ago

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