Dubbo3.0.2.1 Failed to invoke remote method: getMetadataInfo, provider:
- [ ] I have searched the issues of this repository and believe that this is not a duplicate.
- [ ] I have checked the FAQ of this repository and believe that this is not a duplicate.
Environment
- Dubbo version: 3.0.2.1
- Operating System version: Centos7
- Java version: 1.8 dubbo错误信息.txt
Steps to reproduce this issue
- A、B Service Cross reference
Expected Result
Fallback Dubbo version 3.0.1 does not have this problem
Actual Result
What actually happens?
After I update Dubbo version 3.0.1 to 3.0.2.1, the request service result returns to normal, but the exception "failed to invoke remote method: getmetadatainfo, provider:" will be thrown
<!doctype html><html lang="en"><head><title>HTTP Status 400 – Bad Request</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 400 – Bad Request</h1></body></html> in channel: NettyChannel [channel=[id: 0xc33d6db0, L:/192.168.31.105:61470 - R:/192.168.31.105:9211]], url: dubbo://192.168.31.105:9211/org.apache.dubbo.metadata.MetadataService?codec=dubbo&getAndListenInstanceMetadata.1.callback=true&group=api-auth&heartbeat=60000&reconnect=false&side=consumer&timeout=5000&version=1.0.0, dubbo version: 3.0.2.1, current host: 192.168.31.105
java.lang.Exception: Dubbo client can not supported string message: HTTP/1.1 400
Content-Type: text/html;charset=utf-8
Content-Language: en
Content-Length: 435
Date: Mon, 13 Sep 2021 05:36:36 GMT
Connection: close
<!doctype html><html lang="en"><head><title>HTTP Status 400 – Bad Request</title><style type="text/css">body {font-family:Tahoma,Arial,sans-serif;} h1, h2, h3, b {color:white;background-color:#525D76;} h1 {font-size:22px;} h2 {font-size:16px;} h3 {font-size:14px;} p {font-size:12px;} a {color:black;} .line {height:1px;background-color:#525D76;border:none;}</style></head><body><h1>HTTP Status 400 – Bad Request</h1></body></html> in channel: NettyChannel [channel=[id: 0xc33d6db0, L:/192.168.31.105:61470 - R:/192.168.31.105:9211]], url: dubbo://192.168.31.105:9211/org.apache.dubbo.metadata.MetadataService?codec=dubbo&getAndListenInstanceMetadata.1.callback=true&group=api-auth&heartbeat=60000&reconnect=false&side=consumer&timeout=5000&version=1.0.0
at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.received(HeaderExchangeHandler.java:184)
at org.apache.dubbo.remoting.transport.DecodeHandler.received(DecodeHandler.java:51)
at org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:57)
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:748)
13:36:36.259 [nacos.publisher-com.alibaba.nacos.client.naming.event.InstancesChangeEvent] ERROR o.a.d.r.c.e.l.ServiceInstancesChangedListener - [doGetMetadataInfo,341] - [DUBBO] Failed to load service metadata, meta type is local, dubbo version: 3.0.2.1, current host: 192.168.31.105
org.apache.dubbo.rpc.RpcException: Failed to invoke remote method: getMetadataInfo, provider: dubbo://192.168.31.105:9211/org.apache.dubbo.metadata.MetadataService?getAndListenInstanceMetadata.1.callback=true&group=api-auth&reconnect=false&side=consumer&timeout=5000&version=1.0.0, cause: org.apache.dubbo.remoting.RemotingException: Channel NettyChannel [channel=[id: 0xc33d6db0, L:/192.168.31.105:61470 ! R:/192.168.31.105:9211]] is inactive. Directly return the unFinished request : Request [id=1, version=2.0.2, twoway=true, event=false, broken=false, data=RpcInvocation [methodName=getMetadataInfo, parameterTypes=[class java.lang.String], arguments=[null], attachments={group=api-auth, path=org.apache.dubbo.metadata.MetadataService, version=1.0.0}]]
at org.apache.dubbo.rpc.protocol.AbstractInvoker.waitForResultIfSync(AbstractInvoker.java:283)
at org.apache.dubbo.rpc.protocol.AbstractInvoker.invoke(AbstractInvoker.java:181)
at org.apache.dubbo.rpc.listener.ListenerInvokerWrapper.invoke(ListenerInvokerWrapper.java:78)
at io.seata.integration.dubbo.ApacheDubboTransactionPropagationFilter.invoke(ApacheDubboTransactionPropagationFilter.java:69)
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$FilterChainNode.invoke(FilterChainBuilder.java:82)
at com.alibaba.dubbo.rpc.Invoker$CompatibleInvoker.invoke(Invoker.java:55)
at io.seata.integration.dubbo.alibaba.AlibabaDubboTransactionPropagationFilter.invoke(AlibabaDubboTransactionPropagationFilter.java:45)
at com.alibaba.dubbo.rpc.Filter.invoke(Filter.java:29)
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$FilterChainNode.invoke(FilterChainBuilder.java:82)
at com.alibaba.csp.sentinel.adapter.dubbo.SentinelDubboConsumerFilter.syncInvoke(SentinelDubboConsumerFilter.java:82)
at com.alibaba.csp.sentinel.adapter.dubbo.SentinelDubboConsumerFilter.invoke(SentinelDubboConsumerFilter.java:66)
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$FilterChainNode.invoke(FilterChainBuilder.java:82)
at com.alibaba.csp.sentinel.adapter.dubbo.DubboAppContextFilter.invoke(DubboAppContextFilter.java:43)
at org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$FilterChainNode.invoke(FilterChainBuilder.java:82)
at org.apache.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:95)
at org.apache.dubbo.common.bytecode.proxy2.getMetadataInfo(proxy2.java)
at org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener.doGetMetadataInfo(ServiceInstancesChangedListener.java:338)
at org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener.getRemoteMetadata(ServiceInstancesChangedListener.java:291)
at org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener.onEvent(ServiceInstancesChangedListener.java:138)
at org.apache.dubbo.registry.nacos.NacosServiceDiscovery.handleEvent(NacosServiceDiscovery.java:149)
at org.apache.dubbo.registry.nacos.NacosServiceDiscovery.lambda$addServiceInstancesChangedListener$4(NacosServiceDiscovery.java:128)
at com.alibaba.nacos.client.naming.event.InstancesChangeNotifier.onEvent(InstancesChangeNotifier.java:124)
at com.alibaba.nacos.client.naming.event.InstancesChangeNotifier.onEvent(InstancesChangeNotifier.java:40)
at com.alibaba.nacos.common.notify.DefaultPublisher.lambda$notifySubscriber$0(DefaultPublisher.java:201)
at com.alibaba.nacos.common.notify.DefaultPublisher.notifySubscriber(DefaultPublisher.java:208)
at com.alibaba.nacos.common.notify.DefaultPublisher.receiveEvent(DefaultPublisher.java:192)
at com.alibaba.nacos.common.notify.DefaultPublisher.openEventHandler(DefaultPublisher.java:118)
at com.alibaba.nacos.common.notify.DefaultPublisher.run(DefaultPublisher.java:95)
Caused by: java.util.concurrent.ExecutionException: org.apache.dubbo.remoting.RemotingException: Channel NettyChannel [channel=[id: 0xc33d6db0, L:/192.168.31.105:61470 ! R:/192.168.31.105:9211]] is inactive. Directly return the unFinished request : Request [id=1, version=2.0.2, twoway=true, event=false, broken=false, data=RpcInvocation [methodName=getMetadataInfo, parameterTypes=[class java.lang.String], arguments=[null], attachments={group=api-auth, path=org.apache.dubbo.metadata.MetadataService, version=1.0.0}]]
at java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:357)
at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1928)
at org.apache.dubbo.rpc.AsyncRpcResult.get(AsyncRpcResult.java:181)
at org.apache.dubbo.rpc.protocol.AbstractInvoker.waitForResultIfSync(AbstractInvoker.java:272)
... 27 common frames omitted
Caused by: org.apache.dubbo.remoting.RemotingException: Channel NettyChannel [channel=[id: 0xc33d6db0, L:/192.168.31.105:61470 ! R:/192.168.31.105:9211]] is inactive. Directly return the unFinished request : Request [id=1, version=2.0.2, twoway=true, event=false, broken=false, data=RpcInvocation [methodName=getMetadataInfo, parameterTypes=[class java.lang.String], arguments=[null], attachments={group=api-auth, path=org.apache.dubbo.metadata.MetadataService, version=1.0.0}]]
at org.apache.dubbo.remoting.exchange.support.DefaultFuture.doReceived(DefaultFuture.java:207)
at org.apache.dubbo.remoting.exchange.support.DefaultFuture.received(DefaultFuture.java:170)
at org.apache.dubbo.remoting.exchange.support.DefaultFuture.received(DefaultFuture.java:158)
at org.apache.dubbo.remoting.exchange.support.DefaultFuture.closeChannel(DefaultFuture.java:151)
at org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeHandler.disconnected(HeaderExchangeHandler.java:134)
at org.apache.dubbo.remoting.transport.AbstractChannelHandlerDelegate.disconnected(AbstractChannelHandlerDelegate.java:48)
at org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.run(ChannelEventRunnable.java:73)
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:748)
13:36:36.261 [nacos.publisher-com.alibaba.nacos.client.naming.event.InstancesChangeEvent] ERROR o.a.d.r.c.e.l.ServiceInstancesChangedListener - [getRemoteMetadata,297] - [DUBBO] Failed to get MetadataInfo for instance 192.168.31.105:9211?revision=null&cluster=null, wait for retry., dubbo version: 3.0.2.1, current host: 192.168.31.105
13:36:37.266 [DubboClientHandler-thread-1] ERROR o.a.d.r.e.s.h.HeaderExchangeHandler - [received,185] - [DUBBO] Dubbo client can not supported string message: HTTP/1.1 400
Content-Type: text/html;charset=utf-8
Content-Language: en
Content-Length: 435
Date: Mon, 13 Sep 2021 05:36:37 GMT
Connection: close
我也遇到了相同的问题
这里看起来有几个问题:
- 本地连本地是否路由不通
- provider 端口是 9211,是否是自己配置的,需要检查防火墙
- local 的应该是不会走到地址通知的,对于 Dubbo 来说如果本地有服务会直接生成本地的引用
还没有结果吗
@1078629026 @linG5821 Do you still have problems after checking the above steps?
It's not occupy 100%, is it? I didn't reproduce it
解决了么,我也遇到这个问题了?
So the final answer to this question is?