Why did the consumer encounter an org.apache.dubbo.remoting.RemotingException during serialization without any logs or hints being printed—just throwing the exception directly to the consumer? #15797
Unanswered
colin0000007
asked this question in
Question
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Pre-check
Apache Dubbo Component
Java SDK (apache/dubbo)
Details
Dubbo version:3.2.4
Last week, i was troubleshooting a problem that the consumer encounter an org.apache.dubbo.remoting.RemotingExceptionm, the error stack is below.
At first, i thought it was consumer's problem because there was no any error log at provider. So i tried to adjust the JVM -XX:MaxDirectMemorySize parameters for consumer, but it did not work. Finally I founded that the exception comes from the provider. so Why did the consumer encounter an org.apache.dubbo.remoting.RemotingException during serialization without any logs or hints being printed—just throwing the exception directly to the consumer? it was so confused and hard to find problems.
org.apache.dubbo.remoting.RemotingException: Failed to send response: Response [id=663789, version=2.0.2, status=20, event=false, error=null, result=AppResponse [value=com.amap.xxx.common.service.Result@4531ec94, exception=null]], cause: java.io.IOException: org.apache.dubbo.common.serialize.SerializationException: com.esotericsoftware.kryo.KryoException: Error writing requestId at position 4096 Serialization trace: data (com.amap.xxx.common.service.Result) java.io.IOException: org.apache.dubbo.common.serialize.SerializationException: com.esotericsoftware.kryo.KryoException: Error writing requestId at position 4096 Serialization trace: data (com.amap.xxx.common.service.Result) at org.apache.dubbo.common.serialize.DefaultSerializationExceptionWrapper.handleToIOException(DefaultSerializationExceptionWrapper.java:358) at org.apache.dubbo.common.serialize.DefaultSerializationExceptionWrapper.access$000(DefaultSerializationExceptionWrapper.java:28) at org.apache.dubbo.common.serialize.DefaultSerializationExceptionWrapper$ProxyObjectOutput.writeObject(DefaultSerializationExceptionWrapper.java:324) at org.apache.dubbo.rpc.protocol.dubbo.DubboCodec.encodeResponseData(DubboCodec.java:289) at org.apache.dubbo.remoting.exchange.codec.ExchangeCodec.encodeResponse(ExchangeCodec.java:325) at org.apache.dubbo.remoting.exchange.codec.ExchangeCodec.encode(ExchangeCodec.java:81) at org.apache.dubbo.rpc.protocol.dubbo.DubboCountCodec.encode(DubboCountCodec.java:51) at org.apache.dubbo.remoting.transport.netty4.NettyChannel.send(NettyChannel.java:192) at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeChannel.send(HeaderExchangeChannel.java:107) at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeChannel.send(HeaderExchangeChannel.java:96) at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.lambda$handleRequest$0(HeaderExchangeHandler.java:120) at java.util.concurrent.CompletableFuture.uniWhenComplete(CompletableFuture.java:774) at java.util.concurrent.CompletableFuture.uniWhenCompleteStage(CompletableFuture.java:792) at java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:2153) at java.util.concurrent.CompletableFuture.whenComplete(CompletableFuture.java:110) at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.handleRequest(HeaderExchangeHandler.java:111) at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:200) at org.apache.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:53) at org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:62) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at org.apache.dubbo.common.threadlocal.InternalRunnable.run(InternalRunnable.java:41) at java.lang.Thread.run(Thread.java:750) Caused by: org.apache.dubbo.common.serialize.SerializationException: com.esotericsoftware.kryo.KryoException: Error writing requestId at position 4096 Serialization trace: data (com.amap.xxx.common.service.Result) ... 23 more Caused by: com.esotericsoftware.kryo.KryoException: Error writing requestId at position 4096 Serialization trace: data (com.amap.xxx.common.service.Result) at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:112) at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:642) at com.esotericsoftware.kryo.serializers.CollectionSerializer.write(CollectionSerializer.java:155) at com.esotericsoftware.kryo.serializers.CollectionSerializer.write(CollectionSerializer.java:44) at com.esotericsoftware.kryo.Kryo.writeObject(Kryo.java:642) at com.esotericsoftware.kryo.serializers.ReflectField.write(ReflectField.java:71) at com.esotericsoftware.kryo.serializers.FieldSerializer.write(FieldSerializer.java:108) at com.esotericsoftware.kryo.Kryo.writeClassAndObject(Kryo.java:711) at org.apache.dubbo.common.serialize.DefaultSerializationExceptionWrapper$ProxyObjectOutput.writeObject(DefaultSerializationExceptionWrapper.java:322) ... 20 more **Caused by: io.netty.util.internal.OutOfDirectMemoryError: failed to allocate 16777216 byte(s) of direct memory (used: 1073741824, max: 1073741824)** at io.netty.util.internal.PlatformDependent.incrementMemoryCounter(PlatformDependent.java:802)Code of Conduct
Beta Was this translation helpful? Give feedback.
All reactions