Replies: 11 comments
-
2024.03.04 10:11:36 com.xx.xx.xx.xx.common.web.exception.RestHandlerExceptionResolver 64 - exception when do exception resolver with path /android/honor
Caused by: java.util.concurrent.ExecutionException: org.apache.dubbo.remoting.RemotingException: Fail to decode request due to: java.lang.NullPointerException
Caused by: org.apache.dubbo.remoting.RemotingException: Fail to decode request due to: java.lang.NullPointerException
|
Beta Was this translation helpful? Give feedback.
-
method=org.apache.dubbo.remoting.exchange.support.DefaultFuture.doReceived location=AtExit |
Beta Was this translation helpful? Give feedback.
-
Related with #13810 Please add |
Beta Was this translation helpful? Give feedback.
-
我加了-XX:-OmitStackTraceInFastThrow,报错日志也还是上面一样的,没有更多有效日志打印 provider和consumer配置的xml,没有使用dubbo复杂功能,只用了简单的rpc。<dubbo:service 我在测试环境复现出了上面错误,复现场景,一个consumer-A,两个provider-B和C。A调用B和C的dubbo接口,dubbo接口参数是一个枚举类,我在枚举类里新增一种类型NEW,只把A和B升级编译新增了枚举类型NEW,C还是用的老的代码不含新的枚举类型。调用接口的时候A调用B返回200,A调用C返回报错java.lang.IllegalArgumentException: No enum constan。但再多调用几次就会出现上面的报错org.apache.dubbo.remoting.RemotingException: Fail to decode request due to: java.lang.NullPointerException 代码如下: public enum AndroidDevice {
} |
Beta Was this translation helpful? Give feedback.
-
org/apache/dubbo/remoting/exchange/support/header/HeaderExchangeHandler.java:97 |
Beta Was this translation helpful? Give feedback.
-
按这个方法复现不出来,都是IllegalArgumentException,可以传个demo吗
|
Beta Was this translation helpful? Give feedback.
-
at com.alibaba.com.caucho.hessian.io.EnumDeserializer.create(EnumDeserializer.java:133) |
Beta Was this translation helpful? Give feedback.
-
org/apache/dubbo/remoting/exchange/support/header/HeaderExchangeHandler.java:97 provider端抓到的,这个provider是更新了枚举类的,理论上应该是返回200 |
Beta Was this translation helpful? Give feedback.
-
另外一个没有更新新枚举类的provider只抓到java.lang.reflect.InvocationTargetException |
Beta Was this translation helpful? Give feedback.
-
2024.03.06 14:31:54 org.apache.dubbo.rpc.protocol.dubbo.DecodeableRpcInvocation 95 - [DUBBO] Decode rpc invocation failed: null, dubbo version: 3.0.15, current host: 10.112.98.238 |
Beta Was this translation helpful? Give feedback.
-
这个堆栈和这个 #13714 issue很像,确认下是不是类似的原因 |
Beta Was this translation helpful? Give feedback.
-
jdk8+dubbo3.0.15+spring-core-5.3.27 + k8s部署
近期升级dubbo,配置了xml,没有dubbo复杂功能,只用了简单的rpc。<dubbo:service
interface="com.XXX....IUserService"
ref="userService" />
artahs抓到的报错path=null,报错时attachments=@hashmap[
https://github.com/string[path]:null,
https://github.com/string[remote.application]:https://github.com/string[rest-server],
https://github.com/string[interface]:https://github.com/string[com.XX.XX.XX.XX.dubbo.service.user.IUserService],
https://github.com/string[version]:https://github.com/string[0.0.0],
https://github.com/string[timeout]:@integer[1000],
https://github.com/string[token]:https://github.com/string[false],
],
dubbo只使用了基本功能,消费者和提供者都是简单的xml配置<dubbo:service
interface="com.XXX....IUserService"
ref="userService" />
请各位大佬帮忙看看,这种偶现问题实在难查,而且底层源码报错,dubbo升级不好回滚。详细报错如下:
method=org.apache.dubbo.rpc.protocol.AbstractInvoker.waitForResultIfSync location=AtExceptionExit
ts=2024-03-01 18:34:00; [cost=3.200506ms] result=@Arraylist[
@object[][
@AsyncRpcResult[
logger=@FailsafeLogger[
logger=@Slf4jLogger[org.apache.dubbo.common.logger.slf4j.Slf4jLogger@67aa23a],
disabled=@boolean[false],
],
storedContext=null,
executor=@ThreadlessExecutor[
logger=@FailsafeLogger[org.apache.dubbo.common.logger.support.FailsafeLogger@2e474dce],
queue=@LinkedBlockingQueue[isEmpty=true;size=0],
waitingFuture=@DefaultFuture[org.apache.dubbo.remoting.exchange.support.DefaultFuture@346c86dc[Completed exceptionally]],
finished=@boolean[true],
waiting=@boolean[false],
lock=@object[java.lang.Object@646d4d53],
$assertionsDisabled=@boolean[true],
],
invocation=@RpcInvocation[
serialVersionUID=@long[-4355285085441097045],
targetServiceUniqueName=https://github.com/string[com.XX.XX.XX.XX.dubbo.service.user.IUserService],
protocolServiceKey=https://github.com/string[com.XX.XX.XX.XX.dubbo.service.user.IUserService],
serviceModel=@ConsumerModel[org.apache.dubbo.rpc.model.ConsumerModel@cb7c76e9],
methodName=https://github.com/string[updateUserAndroidDeviceToken],
interfaceName=https://github.com/string[com.XX.XX.XX.XX.dubbo.service.user.IUserService],
parameterTypes=@Class[][isEmpty=false;size=4],
parameterTypesDesc=https://github.com/string[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/XX/XX/XX/XX/common/enums/AndroidDevice;],
compatibleParamSignatures=https://github.com/string[][isEmpty=false;size=4],
arguments=@object[][isEmpty=false;size=4],
attachments=@hashmap[isEmpty=false;size=6],
attachmentLock=@ReentrantLock[java.util.concurrent.locks.ReentrantLock@6fb2781d[Unlocked]],
attributes=@SynchronizedMap[isEmpty=false;size=4],
invoker=@DubboInvoker[interface com.XX.XX.XX.XX.dubbo.service.user.IUserService -> 10.112.126.226:18882],
returnType=@Class[void],
returnTypes=@type[][isEmpty=false;size=2],
invokeMode=@InvokeMode[SYNC],
],
async=@boolean[false],
responseFuture=@CompletableFuture[
result=@AltResult[java.util.concurrent.CompletableFuture$AltResult@3e4b8814],
stack=null,
NIL=@AltResult[java.util.concurrent.CompletableFuture$AltResult@4de7fe33],
useCommonPool=@boolean[false],
asyncPool=@ThreadPerTaskExecutor[java.util.concurrent.CompletableFuture$ThreadPerTaskExecutor@59dae37c],
SYNC=@integer[0],
ASYNC=@integer[1],
NESTED=@integer[-1],
UNSAFE=@unsafe[sun.misc.Unsafe@3149fddd],
RESULT=@long[12],
STACK=@long[16],
NEXT=@long[16],
],
setFutureWhenSync=@boolean[true],
],
@RpcInvocation[
serialVersionUID=@long[-4355285085441097045],
targetServiceUniqueName=https://github.com/string[com.XX.XX.XX.XX.dubbo.service.user.IUserService],
protocolServiceKey=https://github.com/string[com.XX.XX.XX.XX.dubbo.service.user.IUserService],
serviceModel=@ConsumerModel[
apps=@TreeSet[isEmpty=true;size=0],
methodConfigs=@hashmap[isEmpty=true;size=0],
methodModels=@hashmap[isEmpty=false;size=21],
serviceKey=https://github.com/string[com.XX.XX.XX.XX.dubbo.service.user.IUserService],
proxyObject=@IUserServiceDubboProxy24[com.XX.XX.XX.XX.dubbo.service.user.IUserServiceDubboProxy24@4a91e2a3],
destroyRunner=@ReferenceConfig$$Lambda$464/1827302216[org.apache.dubbo.config.ReferenceConfig$$Lambda$464/1827302216@38f58ba4],
classLoader=@ParallelWebappClassLoader[ParallelWebappClassLoader
context: ROOT
delegate: false
----------> Parent Classloader:
java.net.URLClassLoader@7cca494b
],
interfaceClassLoader=null,
moduleModel=@ModuleModel[Dubbo Module[1.2.1]],
serviceModel=@ReflectionServiceDescriptor[org.apache.dubbo.rpc.model.ReflectionServiceDescriptor@7f72b8b3],
config=@ReferenceConfig[<dubbo:reference cluster="failover" sticky="false" check="false" validation="false" id="userService" interface="com.XX.XX.XX.XX.dubbo.service.user.IUserService" />],
serviceMetadata=@ServiceMetadata[org.apache.dubbo.rpc.model.ServiceMetadata@2ad4b6f2],
],
methodName=https://github.com/string[updateUserAndroidDeviceToken],
interfaceName=https://github.com/string[com.XX.XX.XX.XX.dubbo.service.user.IUserService],
parameterTypes=@Class[][
@Class[class java.lang.String],
@Class[class java.lang.String],
@Class[class java.lang.String],
@Class[class com.XX.XX.XX.XX.common.enums.AndroidDevice],
],
parameterTypesDesc=https://github.com/string[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Lcom/XX/XX/XX/XX/common/enums/AndroidDevice;],
compatibleParamSignatures=https://github.com/string[][
https://github.com/string[java.lang.String],
https://github.com/string[java.lang.String],
https://github.com/string[java.lang.String],
https://github.com/string[com.XX.XX.XX.XX.common.enums.AndroidDevice],
],
arguments=@object[][
https://github.com/string[4442730.esntest.upesn],
https://github.com/string[104433437],
https://github.com/string[rQI7cJ8JoYsxFzk54whyhOnu/1htAm/XmIl5WwzwAup32iq1EiO2zkJZwTy4t9XN],
@androiddevice[HONOR],
],
attachments=@hashmap[
https://github.com/string[path]:null,
https://github.com/string[remote.application]:https://github.com/string[rest-server],
https://github.com/string[interface]:https://github.com/string[com.XX.XX.XX.XX.dubbo.service.user.IUserService],
https://github.com/string[version]:https://github.com/string[0.0.0],
https://github.com/string[timeout]:@integer[1000],
https://github.com/string[token]:https://github.com/string[false],
],
attachmentLock=@ReentrantLock[
serialVersionUID=@long[7373984872572414699],
sync=@NonfairSync[java.util.concurrent.locks.ReentrantLock$NonfairSync@27c171c7[State = 0, empty queue]],
],
attributes=@SynchronizedMap[
https://github.com/string[methodModel]:@ConsumerMethodModel[org.apache.dubbo.rpc.model.ConsumerMethodModel@338308c2],
https://github.com/string[DUBBO_INVOKE_PROFILER]:@ProfilerEntry[org.apache.dubbo.common.profiler.ProfilerEntry@39e1e407],
https://github.com/string[consumerModel]:@ConsumerModel[org.apache.dubbo.rpc.model.ConsumerModel@cb7c76e9],
https://github.com/string[serialization_id]:@byte[2],
],
invoker=@DubboInvoker[
clients=@ExchangeClient[][isEmpty=false;size=2],
index=@AtomicPositiveInteger[567],
version=https://github.com/string[0.0.0],
destroyLock=@ReentrantLock[java.util.concurrent.locks.ReentrantLock@5ac38271[Unlocked]],
invokers=@ConcurrentHashSet[isEmpty=false;size=392],
serverShutdownTimeout=@integer[10000],
logger=@FailsafeLogger[org.apache.dubbo.common.logger.support.FailsafeLogger@2e180d5b],
type=@Class[interface com.XX.XX.XX.XX.dubbo.service.user.IUserService],
url=@InstanceAddressURL[DefaultServiceInstance{serviceName='XX-server', host='10.112.126.226', port=18882, enabled=true, healthy=true, metadata={dubbo.endpoints=[{"port":18882,"protocol":"dubbo"}], dubbo.metadata-service.url-params={"connections":"1","version":"1.0.0","dubbo":"2.0.2","release":"3.0.15","side":"provider","port":"18882","protocol":"dubbo"}, dubbo.metadata.revision=f12482bf56b945ebee94b5868b1802c0, dubbo.metadata.storage-type=local, timestamp=1709203304527}}],
attachment=@UnmodifiableMap[isEmpty=false;size=2],
available=@boolean[true],
destroyed=@boolean[false],
setFutureWhenSync=@boolean[true],
],
returnType=@Class[
ANNOTATION=@integer[8192],
ENUM=@integer[16384],
SYNTHETIC=@integer[4096],
cachedConstructor=null,
newInstanceCallerCache=null,
name=https://github.com/string[void],
allPermDomain=@ProtectionDomain[ProtectionDomain null
null
java.security.Permissions@5ff6829f (
("java.security.AllPermission" "" "")
)
],
useCaches=@boolean[true],
reflectionData=@SoftReference[java.lang.ref.SoftReference@7fb6f4c],
classRedefinedCount=@integer[0],
genericInfo=@ClassRepository[sun.reflect.generics.repository.ClassRepository@1e649177],
serialVersionUID=@long[3206093459760846163],
serialPersistentFields=@ObjectStreamField[][isEmpty=true;size=0],
reflectionFactory=@ReflectionFactory[sun.reflect.ReflectionFactory@17c6705f],
initted=@boolean[true],
enumConstants=null,
enumConstantDirectory=null,
annotationData=@AnnotationData[java.lang.Class$AnnotationData@29119c4a],
annotationType=null,
classValueMap=null,
],
returnTypes=@type[][
@Class[void],
@Class[void],
],
invokeMode=@InvokeMode[
SYNC=@InvokeMode[SYNC],
ASYNC=@InvokeMode[ASYNC],
FUTURE=@InvokeMode[FUTURE],
$VALUES=@InvokeMode[][isEmpty=false;size=3],
name=https://github.com/string[SYNC],
ordinal=@integer[0],
],
],
],
null,
org.apache.dubbo.rpc.RpcException: Failed to invoke remote method: updateUserAndroidDeviceToken, provider: DefaultServiceInstance{serviceName='XX-server', host='10.112.126.226', port=18882, enabled=true, healthy=true, metadata={dubbo.endpoints=[{"port":18882,"protocol":"dubbo"}], dubbo.metadata-service.url-params={"connections":"1","version":"1.0.0","dubbo":"2.0.2","release":"3.0.15","side":"provider","port":"18882","protocol":"dubbo"}, dubbo.metadata.revision=f12482bf56b945ebee94b5868b1802c0, dubbo.metadata.storage-type=local, timestamp=1709203304527}}, cause: org.apache.dubbo.remoting.RemotingException: Fail to decode request due to: java.lang.NullPointerException
java.lang.NullPointerException
Caused by: java.util.concurrent.ExecutionException: org.apache.dubbo.remoting.RemotingException: Fail to decode request due to: java.lang.NullPointerException
java.lang.NullPointerException
Caused by: org.apache.dubbo.remoting.RemotingException: Fail to decode request due to: java.lang.NullPointerException
java.lang.NullPointerException
Beta Was this translation helpful? Give feedback.
All reactions