liunancun commented on issue #11716:
URL: https://github.com/apache/dubbo/issues/11716#issuecomment-1454336745

   我尝试升级到3.1.7版本之后,这个用例不会报错了,但业务代码测试会报另外一个错误,具体场景没办法用demo重现
   
   ```
   2023-03-04 10:08:25.538 ERROR 9312 --- [           main] 
o.a.d.r.client.metadata.MetadataUtils    :  [DUBBO] Failed to get app metadata 
for revision 0e3b6e9a9e1c2b728fcedaadc65c4450 for type local from instance 
192.168.99.230:20001, dubbo version: 3.1.7, current host: 10.10.1.19, error 
code: 1-39. This may be caused by , go to https://dubbo.apache.org/faq/1/39 to 
find instructions. 
   
   java.lang.NullPointerException: null
        at 
org.apache.dubbo.rpc.RpcServiceContext.isConsumerSide(RpcServiceContext.java:144)
 ~[dubbo-3.1.7.jar:3.1.7]
        at com.bessky.dubbo.UserContextFilter.invoke(UserContextFilter.java:19) 
~[bessky-dubbo-3.0.0-20230304.020331-14.jar:na]
        at 
org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CopyOfFilterChainNode.invoke(FilterChainBuilder.java:327)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.rpc.cluster.filter.FilterChainBuilder$CallbackRegistrationInvoker.invoke(FilterChainBuilder.java:194)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.rpc.proxy.InvocationUtil.invoke(InvocationUtil.java:57) 
~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:75)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.metadata.MetadataServiceDubboProxy0.getMetadataInfo(MetadataServiceDubboProxy0.java)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.registry.client.metadata.MetadataUtils.getRemoteMetadata(MetadataUtils.java:173)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.registry.client.AbstractServiceDiscovery.getRemoteMetadata(AbstractServiceDiscovery.java:228)
 [dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener.lambda$doOnEvent$2(ServiceInstancesChangedListener.java:159)
 [dubbo-3.1.7.jar:3.1.7]
        at java.util.Optional.orElseGet(Optional.java:267) ~[na:1.8.0_161]
        at 
org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener.doOnEvent(ServiceInstancesChangedListener.java:159)
 [dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener.onEvent(ServiceInstancesChangedListener.java:113)
 [dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery.registerServiceWatcher(ZookeeperServiceDiscovery.java:208)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery.lambda$addServiceInstancesChangedListener$3(ZookeeperServiceDiscovery.java:154)
 ~[dubbo-3.1.7.jar:3.1.7]
        at java.lang.Iterable.forEach(Iterable.java:75) ~[na:1.8.0_161]
        at 
org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery.addServiceInstancesChangedListener(ZookeeperServiceDiscovery.java:154)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.registry.client.ServiceDiscoveryRegistry.subscribeURLs(ServiceDiscoveryRegistry.java:327)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.registry.client.ServiceDiscoveryRegistry.doSubscribe(ServiceDiscoveryRegistry.java:217)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.registry.client.ServiceDiscoveryRegistry.subscribe(ServiceDiscoveryRegistry.java:185)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.registry.ListenerRegistryWrapper.subscribe(ListenerRegistryWrapper.java:88)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.registry.integration.DynamicDirectory.subscribe(DynamicDirectory.java:183)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.registry.client.ServiceDiscoveryRegistryDirectory.subscribe(ServiceDiscoveryRegistryDirectory.java:127)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.registry.integration.RegistryProtocol.doCreateInvoker(RegistryProtocol.java:573)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.registry.integration.InterfaceCompatibleRegistryProtocol.getServiceDiscoveryInvoker(InterfaceCompatibleRegistryProtocol.java:65)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.registry.client.migration.MigrationInvoker.refreshServiceDiscoveryInvoker(MigrationInvoker.java:437)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.registry.client.migration.MigrationInvoker.migrateToApplicationFirstInvoker(MigrationInvoker.java:245)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.registry.client.migration.MigrationRuleHandler.refreshInvoker(MigrationRuleHandler.java:76)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.registry.client.migration.MigrationRuleHandler.doMigrate(MigrationRuleHandler.java:60)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.registry.client.migration.MigrationRuleListener.onRefer(MigrationRuleListener.java:247)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.registry.integration.RegistryProtocol.interceptInvoker(RegistryProtocol.java:538)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.registry.integration.RegistryProtocol.doRefer(RegistryProtocol.java:508)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.registry.integration.RegistryProtocol.refer(RegistryProtocol.java:490)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.qos.protocol.QosProtocolWrapper.refer(QosProtocolWrapper.java:83)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.rpc.protocol.ProtocolListenerWrapper.refer(ProtocolListenerWrapper.java:74)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.rpc.protocol.ProtocolSecurityWrapper.refer(ProtocolSecurityWrapper.java:107)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.rpc.cluster.filter.ProtocolFilterWrapper.refer(ProtocolFilterWrapper.java:71)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.rpc.protocol.ProtocolSerializationWrapper.refer(ProtocolSerializationWrapper.java:52)
 ~[dubbo-3.1.7.jar:3.1.7]
        at org.apache.dubbo.rpc.Protocol$Adaptive.refer(Protocol$Adaptive.java) 
~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.config.ReferenceConfig.createInvokerForRemote(ReferenceConfig.java:614)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.config.ReferenceConfig.createProxy(ReferenceConfig.java:448) 
~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.config.ReferenceConfig.init(ReferenceConfig.java:300) 
~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.config.ReferenceConfig.get(ReferenceConfig.java:232) 
~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.config.utils.SimpleReferenceCache.get(SimpleReferenceCache.java:131)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.config.deploy.DefaultModuleDeployer.lambda$referServices$6(DefaultModuleDeployer.java:396)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
java.util.concurrent.ConcurrentHashMap$ValuesView.forEach(ConcurrentHashMap.java:4707)
 ~[na:1.8.0_161]
        at 
org.apache.dubbo.config.deploy.DefaultModuleDeployer.referServices(DefaultModuleDeployer.java:376)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.config.deploy.DefaultModuleDeployer.startSync(DefaultModuleDeployer.java:167)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.config.deploy.DefaultModuleDeployer.start(DefaultModuleDeployer.java:139)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.config.spring.context.DubboDeployApplicationListener.onContextRefreshedEvent(DubboDeployApplicationListener.java:113)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.config.spring.context.DubboDeployApplicationListener.onApplicationEvent(DubboDeployApplicationListener.java:102)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.apache.dubbo.config.spring.context.DubboDeployApplicationListener.onApplicationEvent(DubboDeployApplicationListener.java:47)
 ~[dubbo-3.1.7.jar:3.1.7]
        at 
org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
 ~[spring-context-5.2.9.RELEASE.jar:5.2.9.RELEASE]
        at 
org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
 ~[spring-context-5.2.9.RELEASE.jar:5.2.9.RELEASE]
        at 
org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
 ~[spring-context-5.2.9.RELEASE.jar:5.2.9.RELEASE]
        at 
org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:404)
 ~[spring-context-5.2.9.RELEASE.jar:5.2.9.RELEASE]
        at 
org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:361)
 ~[spring-context-5.2.9.RELEASE.jar:5.2.9.RELEASE]
        at 
org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:898)
 ~[spring-context-5.2.9.RELEASE.jar:5.2.9.RELEASE]
        at 
org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:554)
 ~[spring-context-5.2.9.RELEASE.jar:5.2.9.RELEASE]
        at 
org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) 
~[spring-boot-2.2.10.RELEASE.jar:2.2.10.RELEASE]
        at 
org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)
 ~[spring-boot-2.2.10.RELEASE.jar:2.2.10.RELEASE]
        at 
org.springframework.boot.SpringApplication.run(SpringApplication.java:315) 
~[spring-boot-2.2.10.RELEASE.jar:2.2.10.RELEASE]
        at 
org.springframework.boot.SpringApplication.run(SpringApplication.java:1226) 
~[spring-boot-2.2.10.RELEASE.jar:2.2.10.RELEASE]
        at 
org.springframework.boot.SpringApplication.run(SpringApplication.java:1215) 
~[spring-boot-2.2.10.RELEASE.jar:2.2.10.RELEASE]
        at 
com.bessky.elasticsearch.BesskyElasticsearchServiceApplication.main(BesskyElasticsearchServiceApplication.java:17)
 ~[classes/:na]
   ```
   
   
我用demo重现的时候不会调用org.apache.dubbo.registry.client.metadata.MetadataUtils.getRemoteMetadata方法,这个方法具体要在什么场景下才会调用?业务代码调用这个方法进入过滤器还是会报空指针


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to