logstash-plugins / logstash-output-rabbitmq

Apache License 2.0
17 stars 37 forks source link

Short string too long; utf-8 encoded #73

Open duylong opened 6 years ago

duylong commented 6 years ago

Hi,

I have a issue that is blocking my Logstash. Here are the logs before it dies:

logstash[86810]: Exception in thread "Ruby-0-Thread-9@[main]>worker1: /usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:384" java.lang.IllegalArgumentException: Short string too long; utf-8 encoded
logstash[86810]: at com.rabbitmq.client.impl.ValueWriter.writeShortstr(com/rabbitmq/client/impl/ValueWriter.java:50)
logstash[86810]: at com.rabbitmq.client.impl.MethodArgumentWriter.writeShortstr(com/rabbitmq/client/impl/MethodArgumentWriter.java:74)
logstash[86810]: at com.rabbitmq.client.impl.AMQImpl$Basic$Publish.writeArgumentsTo(com/rabbitmq/client/impl/AMQImpl.java:2319)
logstash[86810]: at com.rabbitmq.client.impl.Method.toFrame(com/rabbitmq/client/impl/Method.java:85)
logstash[86810]: at com.rabbitmq.client.impl.AMQCommand.transmit(com/rabbitmq/client/impl/AMQCommand.java:104)
logstash[86810]: at com.rabbitmq.client.impl.AMQChannel.quiescingTransmit(com/rabbitmq/client/impl/AMQChannel.java:363)
logstash[86810]: at com.rabbitmq.client.impl.AMQChannel.transmit(com/rabbitmq/client/impl/AMQChannel.java:339)
logstash[86810]: at com.rabbitmq.client.impl.ChannelN.basicPublish(com/rabbitmq/client/impl/ChannelN.java:686)
logstash[86810]: at java.lang.reflect.Method.invoke(java/lang/reflect/Method.java:498)
logstash[86810]: at org.jruby.javasupport.JavaMethod.invokeDirectWithExceptionHandling(org/jruby/javasupport/JavaMethod.java:423)
logstash[86810]: at org.jruby.javasupport.JavaMethod.invokeDirect(org/jruby/javasupport/JavaMethod.java:290)
logstash[86810]: at usr.share.logstash.vendor.bundle.jruby.$2_dot_3_dot_0.gems.march_hare_minus_3_dot_0_dot_0_minus_java.lib.march_hare.channel.invokeOther3:basic_publish(usr/share/logstash/vendor/bundle/jru
logstash[86810]: at usr.share.logstash.vendor.bundle.jruby.$2_dot_3_dot_0.gems.march_hare_minus_3_dot_0_dot_0_minus_java.lib.march_hare.channel.block in basic_publish(/usr/share/logstash/vendor/bundle/jruby/
logstash[86810]: at org.jruby.RubyProc.call(org/jruby/RubyProc.java:289)
logstash[86810]: at org.jruby.RubyProc.call19(org/jruby/RubyProc.java:273)
logstash[86810]: at org.jruby.RubyProc$INVOKER$i$0$0$call19.call(org/jruby/RubyProc$INVOKER$i$0$0$call19.gen)
logstash[86810]: at usr.share.logstash.vendor.bundle.jruby.$2_dot_3_dot_0.gems.march_hare_minus_3_dot_0_dot_0_minus_java.lib.march_hare.channel.invokeOther0:call(usr/share/logstash/vendor/bundle/jruby/$2_dot
logstash[86810]: at usr.share.logstash.vendor.bundle.jruby.$2_dot_3_dot_0.gems.march_hare_minus_3_dot_0_dot_0_minus_java.lib.march_hare.channel.converting_rjc_exceptions_to_ruby(/usr/share/logstash/vendor/bu
logstash[86810]: at usr.share.logstash.vendor.bundle.jruby.$2_dot_3_dot_0.gems.march_hare_minus_3_dot_0_dot_0_minus_java.lib.march_hare.channel.invokeOther5:converting_rjc_exceptions_to_ruby(usr/share/logsta
logstash[86810]: at usr.share.logstash.vendor.bundle.jruby.$2_dot_3_dot_0.gems.march_hare_minus_3_dot_0_dot_0_minus_java.lib.march_hare.channel.basic_publish(/usr/share/logstash/vendor/bundle/jruby/2.3.0/gem
logstash[86810]: at usr.share.logstash.vendor.bundle.jruby.$2_dot_3_dot_0.gems.march_hare_minus_3_dot_0_dot_0_minus_java.lib.march_hare.channel.RUBY$method$basic_publish$0$__VARARGS__(usr/share/logstash/vend
logstash[86810]: at usr.share.logstash.vendor.bundle.jruby.$2_dot_3_dot_0.gems.march_hare_minus_3_dot_0_dot_0_minus_java.lib.march_hare.exchange.invokeOther14:basic_publish(usr/share/logstash/vendor/bundle/j
logstash[86810]: at usr.share.logstash.vendor.bundle.jruby.$2_dot_3_dot_0.gems.march_hare_minus_3_dot_0_dot_0_minus_java.lib.march_hare.exchange.publish(/usr/share/logstash/vendor/bundle/jruby/2.3.0/gems/mar
logstash[86810]: at usr.share.logstash.vendor.bundle.jruby.$2_dot_3_dot_0.gems.logstash_minus_output_minus_rabbitmq_minus_5_dot_1_dot_0_minus_java.lib.logstash.outputs.rabbitmq.invokeOther17:publish(usr/shar
logstash[86810]: at usr.share.logstash.vendor.bundle.jruby.$2_dot_3_dot_0.gems.logstash_minus_output_minus_rabbitmq_minus_5_dot_1_dot_0_minus_java.lib.logstash.outputs.rabbitmq.publish(/usr/share/logstash/ve
logstash[86810]: at usr.share.logstash.vendor.bundle.jruby.$2_dot_3_dot_0.gems.logstash_minus_output_minus_rabbitmq_minus_5_dot_1_dot_0_minus_java.lib.logstash.outputs.rabbitmq.invokeOther0:publish(usr/share
logstash[86810]: at usr.share.logstash.vendor.bundle.jruby.$2_dot_3_dot_0.gems.logstash_minus_output_minus_rabbitmq_minus_5_dot_1_dot_0_minus_java.lib.logstash.outputs.rabbitmq.block in multi_receive_encoded
logstash[86810]: at org.jruby.RubyArray.each(org/jruby/RubyArray.java:1734)
logstash[86810]: at org.jruby.RubyArray$INVOKER$i$0$0$each.call(org/jruby/RubyArray$INVOKER$i$0$0$each.gen)
logstash[86810]: at usr.share.logstash.vendor.bundle.jruby.$2_dot_3_dot_0.gems.logstash_minus_output_minus_rabbitmq_minus_5_dot_1_dot_0_minus_java.lib.logstash.outputs.rabbitmq.invokeOther2:each(usr/share/lo
logstash[86810]: at usr.share.logstash.vendor.bundle.jruby.$2_dot_3_dot_0.gems.logstash_minus_output_minus_rabbitmq_minus_5_dot_1_dot_0_minus_java.lib.logstash.outputs.rabbitmq.multi_receive_encoded(/usr/sha
logstash[86810]: at usr.share.logstash.logstash_minus_core.lib.logstash.outputs.base.invokeOther4:multi_receive_encoded(usr/share/logstash/logstash_minus_core/lib/logstash/outputs//usr/share/logstash/logstas
logstash[86810]: at usr.share.logstash.logstash_minus_core.lib.logstash.outputs.base.multi_receive(/usr/share/logstash/logstash-core/lib/logstash/outputs/base.rb:90)
logstash[86810]: at usr.share.logstash.logstash_minus_core.lib.logstash.output_delegator_strategies.shared.invokeOther1:multi_receive(usr/share/logstash/logstash_minus_core/lib/logstash/output_delegator_stra
logstash[86810]: at usr.share.logstash.logstash_minus_core.lib.logstash.output_delegator_strategies.shared.multi_receive(/usr/share/logstash/logstash-core/lib/logstash/output_delegator_strategies/shared.rb:1
logstash[86810]: at usr.share.logstash.logstash_minus_core.lib.logstash.output_delegator.invokeOther8:multi_receive(usr/share/logstash/logstash_minus_core/lib/logstash//usr/share/logstash/logstash-core/lib/l
logstash[86810]: at usr.share.logstash.logstash_minus_core.lib.logstash.output_delegator.multi_receive(/usr/share/logstash/logstash-core/lib/logstash/output_delegator.rb:49)
logstash[86810]: at usr.share.logstash.logstash_minus_core.lib.logstash.pipeline.invokeOther5:multi_receive(usr/share/logstash/logstash_minus_core/lib/logstash//usr/share/logstash/logstash-core/lib/logstash/
logstash[86810]: at usr.share.logstash.logstash_minus_core.lib.logstash.pipeline.block in output_batch(/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:479)
logstash[86810]: at org.jruby.RubyHash$12.visit(org/jruby/RubyHash.java:1362)
logstash[86810]: at org.jruby.RubyHash$12.visit(org/jruby/RubyHash.java:1359)
logstash[86810]: at org.jruby.RubyHash.visitLimited(org/jruby/RubyHash.java:662)
logstash[86810]: at org.jruby.RubyHash.visitAll(org/jruby/RubyHash.java:647)
logstash[86810]: at org.jruby.RubyHash.iteratorVisitAll(org/jruby/RubyHash.java:1319)
logstash[86810]: at org.jruby.RubyHash.each_pairCommon(org/jruby/RubyHash.java:1354)
logstash[86810]: at org.jruby.RubyHash.each(org/jruby/RubyHash.java:1343)
logstash[86810]: at org.jruby.RubyHash$INVOKER$i$0$0$each.call(org/jruby/RubyHash$INVOKER$i$0$0$each.gen)
logstash[86810]: at usr.share.logstash.logstash_minus_core.lib.logstash.pipeline.invokeOther10:each(usr/share/logstash/logstash_minus_core/lib/logstash//usr/share/logstash/logstash-core/lib/logstash/pipeline
logstash[86810]: at usr.share.logstash.logstash_minus_core.lib.logstash.pipeline.output_batch(/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:478)
logstash[86810]: at RUBY.worker_loop(/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:430)
logstash[86810]: at RUBY.block in start_workers(/usr/share/logstash/logstash-core/lib/logstash/pipeline.rb:385)
logstash[86810]: at org.jruby.RubyProc.call(org/jruby/RubyProc.java:289)
logstash[86810]: at org.jruby.RubyProc.call(org/jruby/RubyProc.java:246)
logstash[86810]: at java.lang.Thread.run(java/lang/Thread.java:745)
input {
                kafka { 
                        ....
                }
}

# No filter

output {
                rabbitmq {
                        enable_metric => "false"
                        host => "127.0.0.1"
                        port => "5672"
                        user => "logstash"
                        password => "****"
                        vhost => "/"
                        persistent => "true"
                        durable => "true"
                        exchange => "MYEXCHANGE"
                        exchange_type => "topic"
                        key => "MYROUTINGKEYS"
                }
}

Do you know this issue ? Is there a way to avoid blocking the Logstash?