You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@dubbo.apache.org by GitBox <gi...@apache.org> on 2021/11/16 12:17:09 UTC

[GitHub] [dubbo] zrlw opened a new issue #9283: [3.0] destroy时ReferenceCountExchangeClient的replaceWithLazyClient方法会出现NPE

zrlw opened a new issue #9283:
URL: https://github.com/apache/dubbo/issues/9283


   ### Environment
   
   * Dubbo version: 3.0 
   
   ReferenceCountExchangeClient的replaceWithLazyClient方法没有判断当前是否正在destroy,创建LazyConnectExchangeClient对象时new ServiceConfigURL调用可能会NPE,原因是url.getPath()调用InstanceAddressURL#getPath方法时,getProtocolServiceKey()方法因为RpcServiceContext.consumerUrl为null而返回null,传入metadataInfo.getServiceInfo方法入参为null导致ConcurrentHashMap.get调用NPE:
   ```
   java.lang.NullPointerException
   	at java.util.concurrent.ConcurrentHashMap.get(ConcurrentHashMap.java:936)
   	at org.apache.dubbo.metadata.MetadataInfo.getServiceInfo(MetadataInfo.java:174)
   	at org.apache.dubbo.registry.client.InstanceAddressURL.getPath(InstanceAddressURL.java:133)
   	at org.apache.dubbo.rpc.protocol.dubbo.LazyConnectExchangeClient.<init>(LazyConnectExchangeClient.java:65)
   	at org.apache.dubbo.rpc.protocol.dubbo.ReferenceCountExchangeClient.replaceWithLazyClient(ReferenceCountExchangeClient.java:217)
   	at org.apache.dubbo.rpc.protocol.dubbo.ReferenceCountExchangeClient.closeInternal(ReferenceCountExchangeClient.java:187)
   	at org.apache.dubbo.rpc.protocol.dubbo.ReferenceCountExchangeClient.close(ReferenceCountExchangeClient.java:164)
   	at org.apache.dubbo.rpc.protocol.dubbo.DubboInvoker.destroyInternal(DubboInvoker.java:174)
   	at org.apache.dubbo.rpc.protocol.dubbo.DubboInvoker.destroy(DubboInvoker.java:141)
   	at org.apache.dubbo.rpc.listener.ListenerInvokerWrapper.destroy(ListenerInvokerWrapper.java:89)
   	at org.apache.dubbo.rpc.Invoker.destroyAll(Invoker.java:50)
   	at org.apache.dubbo.registry.client.ServiceDiscoveryRegistryDirectory.destroyAllInvokers(ServiceDiscoveryRegistryDirectory.java:344)
   	at org.apache.dubbo.registry.integration.DynamicDirectory.destroy(DynamicDirectory.java:297)
   	at org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker.destroy(AbstractClusterInvoker.java:126)
   	at org.apache.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker.destroy(MockClusterInvoker.java:80)
   	at org.apache.dubbo.registry.client.migration.MigrationInvoker.destroy(MigrationInvoker.java:316)
   	at org.apache.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:72)
   	at org.apache.dubbo.common.bytecode.proxy4.$destroy(proxy4.java)
   	at org.apache.dubbo.config.utils.SimpleReferenceCache.destroyReference(SimpleReferenceCache.java:244)
   	at org.apache.dubbo.config.utils.SimpleReferenceCache.lambda$5(SimpleReferenceCache.java:234)
   	at java.util.concurrent.ConcurrentHashMap.forEach(ConcurrentHashMap.java:1597)
   	at org.apache.dubbo.config.utils.SimpleReferenceCache.destroyAll(SimpleReferenceCache.java:232)
   	at org.apache.dubbo.config.deploy.DefaultModuleDeployer.unreferServices(DefaultModuleDeployer.java:402)
   	at org.apache.dubbo.config.deploy.DefaultModuleDeployer.postDestroy(DefaultModuleDeployer.java:205)
   	at org.apache.dubbo.rpc.model.ModuleModel.onDestroy(ModuleModel.java:107)
   	at org.apache.dubbo.rpc.model.ScopeModel.destroy(ScopeModel.java:108)
   	at org.apache.dubbo.config.spring.context.DubboDeployApplicationListener.onContextClosedEvent(DubboDeployApplicationListener.java:127)
   	at org.apache.dubbo.config.spring.context.DubboDeployApplicationListener.onApplicationEvent(DubboDeployApplicationListener.java:100)
   	at org.apache.dubbo.config.spring.context.DubboDeployApplicationListener.onApplicationEvent(DubboDeployApplicationListener.java:1)
   	at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:96)
   	at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:335)
   	at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:1059)
   	at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:1020)
   	at org.apache.dubbo.test.spring.SpringXmlConfigTest.test(SpringXmlConfigTest.java:69)
   ```


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw edited a comment on issue #9283: [3.0] scopeModel destroy时ReferenceCountExchangeClient的replaceWithLazyClient方法会出现NPE

Posted by GitBox <gi...@apache.org>.
zrlw edited a comment on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-971427659


   #9284 现在采取的方法:
   1. 在RpcContext销毁SERVICE_CONTEXT时,通知InstanceAddressURL采用强引用方式保存RpcServiceContext以便能够继续访问RpcServiceContext的成员属性;
   2. 修改InstanceAddressURL获取ServiceContext的相关方法:如有保存的ServiceContext,而且保存的ServiceContext的consumerUrl的scope model为destroyed状态,则使用保存的ServiceContext,否则使用RpcContext的ServiceContext。
   
   验证测试类:SpringXmlConfigTest


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw edited a comment on issue #9283: [3.0] InstanceAddressURL不支持ReferenceCountExchangeClient的replaceWithLazyClient方法,无论scope model是否destroyed都会NPE

Posted by GitBox <gi...@apache.org>.
zrlw edited a comment on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-974802426


   现在 #9284 回到了最初的修订方式,每次rpc调用时将当前的rpcServiceContext保存到InstanceAddressURL,以防止关闭ReferenceCountExchangeClient过程中创建LazyConnectExchangeClient时抛NPE (这是另一种NPE,scope model还在正常运行)。


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw edited a comment on issue #9283: [3.0] scopeModel destroy时ReferenceCountExchangeClient的replaceWithLazyClient方法会出现NPE

Posted by GitBox <gi...@apache.org>.
zrlw edited a comment on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-971427659


   现在是把URL给改了,增加setConsumer方法把consumerUrl保存下来,从service context获取consumerUrl的相关方法都改为直接读取构造方法保存的consumerUrl,这样scope model销毁之后(service context清掉consumer url),这些方法就不会再NPE了(从service context获取的consumerUrl为null)。


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw edited a comment on issue #9283: [3.0] InstanceAddressURL不支持ReferenceCountExchangeClient的replaceWithLazyClient方法,无论scope model是否destroyed都会NPE

Posted by GitBox <gi...@apache.org>.
zrlw edited a comment on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-971427659


   过去两天尝试了下列修订(失败告终):
   1. 构建InstanceAddressURL时,注册rpc ServiceContext销毁通知方法到当前线程的rpcContext;
   2. 在RpcContext销毁SERVICE_CONTEXT时,调用已注册的销毁通知方法通知InstanceAddressURL采用强引用方式保存RpcServiceContext以便能够继续访问RpcServiceContext的成员属性;
   3. 修改InstanceAddressURL获取ServiceContext的相关方法:如有保存的ServiceContext,而且保存的ServiceContext的consumerUrl的scope model为destroyed状态,则使用保存的ServiceContext,否则使用RpcContext的ServiceContext。
   
   验证测试类:SpringXmlConfigTest
   
   本地windows采取上述方式测试验证没有什么问题,但github构建99%的概率两个ubuntu单元测试失败,手头没有ubuntu环境,只好加了很多logger部署到github上排查原因,最终确认ubuntu环境下构建InstanceAddressURL的线程往往是main-EventThread,但是使用InstanceAddressURL对象的线程往往是main线程,main线程感知不到注册到main-EventThread线程的rpc ServiceContext销毁通知方法。
   我深度怀疑同一个InstanceAddressURL对象的getServiceContext方法可能也会被多个线程调用,所以放弃了这种注册通知的修复方式。


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw edited a comment on issue #9283: [3.0] InstanceAddressURL不支持ReferenceCountExchangeClient的replaceWithLazyClient方法,无论scope model是否destroyed都会NPE

Posted by GitBox <gi...@apache.org>.
zrlw edited a comment on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-971427659


   过去两天尝试了下列修订(失败告终):
   1. 构建InstanceAddressURL时,注册rpc ServiceContext销毁通知方法到当前线程的rpcContext;
   2. 在RpcContext销毁SERVICE_CONTEXT时,调用已注册的销毁通知方法通知InstanceAddressURL采用强引用方式保存RpcServiceContext以便能够继续访问RpcServiceContext的成员属性;
   3. 修改InstanceAddressURL获取ServiceContext的相关方法:如有保存的ServiceContext,而且保存的ServiceContext的consumerUrl的scope model为destroyed状态或着RpcContext的ServiceContext里的consumerUrl为null,则使用保存的ServiceContext,其他情况下均使用RpcContext的ServiceContext。
   
   验证测试类:SpringXmlConfigTest
   
   本地windows采取上述方式测试验证没有什么问题,但github构建99%的概率两个ubuntu单元测试失败,手头没有ubuntu环境,只好加了很多logger部署到github上排查原因,最终确认ubuntu环境下构建InstanceAddressURL的线程往往是main-EventThread,但是使用InstanceAddressURL对象的线程往往是main线程,main线程感知不到注册到main-EventThread线程的rpc ServiceContext销毁通知方法,销毁时没有调用销毁通知方法。


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw edited a comment on issue #9283: [3.0] scopeModel destroy时ReferenceCountExchangeClient的replaceWithLazyClient方法会出现NPE

Posted by GitBox <gi...@apache.org>.
zrlw edited a comment on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-971427659


   #9284 现在采取的方法:
   1. RpcContext销毁SERVICE_CONTEXT时,通知InstanceAddressURL采用强引用方式保存RpcServiceContext,以便InstanceAddressURL的相关方法能够在销毁场景下继续访问RpcServiceContext的成员属性;
   2. 调整InstanceAddressURL获取RpcServiceContext的方法:如果RpcServiceContext已保存,而且从RpcContext获取的RpcServiceContext的consumerUrl为null,则使用保存的RpcServiceContext,否则使用RpcContext的RpcServiceContext。
   
   单元测试类:SpringXmlConfigTest


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw commented on issue #9283: [3.0] scopeModel destroy时ReferenceCountExchangeClient的replaceWithLazyClient方法会出现NPE

Posted by GitBox <gi...@apache.org>.
zrlw commented on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-974802426


   现在 #9284 回到了最初的方式,每次rpc调用时将当前的rpcServiceContext保存到InstanceAddressURL以备使用。


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw commented on issue #9283: [3.0] InstanceAddressURL不支持ReferenceCountExchangeClient的replaceWithLazyClient方法,无论scope model是否destroyed都会NPE

Posted by GitBox <gi...@apache.org>.
zrlw commented on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-975358837


   重新读了一遍相关的代码,现在的 #9284 是在下次rpc调用前清理上次rpcServiceContext,每次rpc调用完不再清理rpcServiceContext了,这么修订主要基于如下考量。
   1. rpcServiceContext的核心是consumerUrl,每次rpc调用完留着rpcServiceContext除了消耗了一点thread local内存,没有其他副作用;
   2. 相关的unit test同步修订,每次rpc调用后如果需要清理rpcServiceContext,需要手工清理;
   3. 支持LazyConnectExchangeClient。


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw removed a comment on issue #9283: [3.0] InstanceAddressURL不支持ReferenceCountExchangeClient的replaceWithLazyClient方法,无论scope model是否destroyed都会NPE

Posted by GitBox <gi...@apache.org>.
zrlw removed a comment on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-975358837


   重新读了一遍相关的代码,现在的 #9284 是在下次rpc调用前清理上次rpcServiceContext,每次rpc调用完不再清理rpcServiceContext了,这么修订主要基于如下考量。
   1. rpcServiceContext的核心是consumerUrl,每次rpc调用完留着rpcServiceContext除了消耗了一点thread local内存,没有其他副作用;
   2. 相关的unit test同步修订,每次rpc调用后如果需要清理rpcServiceContext,需要手工清理;
   3. 支持LazyConnectExchangeClient。


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw removed a comment on issue #9283: [3.0] scopeModel destroy时ReferenceCountExchangeClient的replaceWithLazyClient方法会出现NPE

Posted by GitBox <gi...@apache.org>.
zrlw removed a comment on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-971317621


   #9284 修改了ReferenceCountExchangeClient的replaceWithLazyClient方法,在创建LazyConnectExchangeClient之前增加了RpcContext.getServiceContext().getConsumerUrl()非null判断,为null则直接返回以避免NPE。
   存在的不足:
   1. 不容易理解;
   2. 不通用:严格意义上目前只有InstanceAddressURL类型的URL才会出现NPE,如果只对InstanceAddressURL类型的URL做上述判断,dubbo-rpc-dubbo要增加dubbo-registry-api依赖,然后ReferenceCountExchangeClient才能使用InstanceAddressURL类型进行判定。(目前没有增加dubbo-registry-api依赖,所以URL具体类型无法判定,对所有URL都做上述处理未必合理)
   
   如果能直接获得当前ScopeModel的destroyed状态就好了,用destroy状态进行判定不仅容易理解,而且更支持URL类型扩展。


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw edited a comment on issue #9283: [3.0] scopeModel destroy时ReferenceCountExchangeClient的replaceWithLazyClient方法会出现NPE

Posted by GitBox <gi...@apache.org>.
zrlw edited a comment on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-974802426


   现在 #9284 回到了最初的方式,每次rpc调用时将当前的rpcServiceContext保存到InstanceAddressURL以支持ReferenceCountExchangeClient关闭时能正常创建LazyConnectExchangeClient。


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw edited a comment on issue #9283: [3.0] scopeModel destroy时ReferenceCountExchangeClient的replaceWithLazyClient方法会出现NPE

Posted by GitBox <gi...@apache.org>.
zrlw edited a comment on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-971427659


   现在 #9284 采取的方法是把URL给改了,增加setConsumerUrl方法把consumerUrl保存下来,从service context获取consumerUrl的相关方法都改为直接读取之前保存的consumerUrl,这样scope model销毁之后(service context清掉consumer url),这些方法就不会再NPE了(从service context获取的consumerUrl为null)。


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw edited a comment on issue #9283: [3.0] scopeModel destroy时ReferenceCountExchangeClient的replaceWithLazyClient方法会出现NPE

Posted by GitBox <gi...@apache.org>.
zrlw edited a comment on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-971317621


   #9284 修改了ReferenceCountExchangeClient的replaceWithLazyClient方法,在创建LazyConnectExchangeClient之前增加了RpcContext.getServiceContext().getConsumerUrl()非null判断,为null则直接返回以避免NPE。
   存在的不足:
   1. 不容易理解;
   2. 不通用:严格意义上目前只有InstanceAddressURL类型的URL才会出现NPE,如果只对InstanceAddressURL类型的URL做上述判断,dubbo-rpc-dubbo要增加dubbo-registry-api依赖,然后ReferenceCountExchangeClient才能使用InstanceAddressURL类型进行判定。(目前没有增加dubbo-registry-api依赖,所以URL具体类型无法判定,对所有URL都做上述处理未必合理)
   
   如果能直接获得当前ScopeModel的destroyed状态就好了,用destroy状态进行判定不仅容易理解,而且更支持URL类型扩展。


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw edited a comment on issue #9283: [3.0] scopeModel destroy时ReferenceCountExchangeClient的replaceWithLazyClient方法会出现NPE

Posted by GitBox <gi...@apache.org>.
zrlw edited a comment on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-971427659


   最终还是把InstanceAddressURL给改了,构造方法先把consumerUrl保存下来,从service context获取consumerUrl的相关方法都改为直接读取构造方法保存的consumerUrl,这样scope model销毁之后(service context清掉consumer url),这些方法就不会再NPE了(从service context获取的consumerUrl为null);RpcServiceContext重新设置consumerUrl时,通知相关的InstanceAddressURL进行更新。


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw edited a comment on issue #9283: [3.0] scopeModel destroy时ReferenceCountExchangeClient的replaceWithLazyClient方法会出现NPE

Posted by GitBox <gi...@apache.org>.
zrlw edited a comment on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-971427659


   现在 #9284 采取的方法是把URL给改了,增加setConsumer方法把consumerUrl保存下来,从service context获取consumerUrl的相关方法都改为直接读取构造方法保存的consumerUrl,这样scope model销毁之后(service context清掉consumer url),这些方法就不会再NPE了(从service context获取的consumerUrl为null)。


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw edited a comment on issue #9283: [3.0] scopeModel destroy时ReferenceCountExchangeClient的replaceWithLazyClient方法会出现NPE

Posted by GitBox <gi...@apache.org>.
zrlw edited a comment on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-974802426


   现在 #9284 回到了最初的方式,每次rpc调用时将当前的rpcServiceContext保存到InstanceAddressURL,以防止关闭ReferenceCountExchangeClient过程中创建LazyConnectExchangeClient时抛NPE (这是另一种NPE,scope model还在正常运行)。


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw commented on issue #9283: [3.0] scopeModel destroy时ReferenceCountExchangeClient的replaceWithLazyClient方法会出现NPE

Posted by GitBox <gi...@apache.org>.
zrlw commented on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-971317621


   #9284 修改了ReferenceCountExchangeClient的replaceWithLazyClient方法,在创建LazyConnectExchangeClient之前增加了RpcContext.getServiceContext().getConsumerUrl()非null判断,为null则直接返回以避免NPE。
   存在的不足:
   1. 不容易理解;
   2. 不通用:严格意义上目前只有InstanceAddressURL类型的URL才会出现NPE,如果只对InstanceAddressURL类型的URL做上述判断,dubbo-rpc-dubbo要增加dubbo-registry-api依赖,然后ReferenceCountExchangeClient才能使用InstanceAddressURL类型进行判定。
   
   如果能直接获得当前ScopeModel的destroyed状态就好了,用destroy状态进行判定不仅容易理解,而且更支持URL类型扩展。


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw edited a comment on issue #9283: [3.0] InstanceAddressURL不支持ReferenceCountExchangeClient的replaceWithLazyClient方法,无论scope model是否destroyed都会NPE

Posted by GitBox <gi...@apache.org>.
zrlw edited a comment on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-971427659


   过去两天尝试了下列修订(失败告终):
   1. 构建InstanceAddressURL时,注册rpc ServiceContext销毁通知方法到当前线程的rpcContext;
   2. 在RpcContext销毁SERVICE_CONTEXT时,调用已注册的销毁通知方法通知InstanceAddressURL采用强引用方式保存RpcServiceContext以便能够继续访问RpcServiceContext的成员属性;
   3. 修改InstanceAddressURL获取ServiceContext的相关方法:如有保存的ServiceContext,而且保存的ServiceContext的consumerUrl的scope model为destroyed状态或着RpcContext的ServiceContext里的consumerUrl为null,则使用保存的ServiceContext,其他情况下均使用RpcContext的ServiceContext。
   
   验证测试类:SpringXmlConfigTest
   
   本地windows采取上述方式测试验证没有什么问题,但github构建99%的概率两个ubuntu单元测试失败,手头没有ubuntu环境,只好加了很多logger部署到github上排查原因,最终确认ubuntu环境下构建InstanceAddressURL的线程往往是main-EventThread,但是销毁rpcContext的线程往往是main线程,main线程感知不到注册到main-EventThread线程的rpc ServiceContext销毁通知方法,所以销毁serviceContext时根本没有调用销毁通知方法。


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw edited a comment on issue #9283: [3.0] scopeModel destroy时ReferenceCountExchangeClient的replaceWithLazyClient方法会出现NPE

Posted by GitBox <gi...@apache.org>.
zrlw edited a comment on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-971427659


   #9284 现在采取的方法:
   1. 在RpcContext销毁SERVICE_CONTEXT时,通知InstanceAddressURL采用强引用方式保存RpcServiceContext以便能够继续访问RpcServiceContext的成员属性;
   2. 修改InstanceAddressURL获取ServiceContext的相关方法:如果ServiceContext已保存,而且从RpcContext获取的ServiceContext的consumerUrl为null,则使用保存的ServiceContext,否则使用RpcContext的ServiceContext。
   
   验证测试类:SpringXmlConfigTest


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw edited a comment on issue #9283: [3.0] scopeModel destroy时ReferenceCountExchangeClient的replaceWithLazyClient方法会出现NPE

Posted by GitBox <gi...@apache.org>.
zrlw edited a comment on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-974802426


   现在 #9284 回到了最初的方式,每次rpc调用时将当前的rpcServiceContext保存到InstanceAddressURL,以防止关闭ReferenceCountExchangeClient创建LazyConnectExchangeClient时抛NPE (这是另一种NPE,scope model还在正常运行)。


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw commented on issue #9283: [3.0] scopeModel destroy时ReferenceCountExchangeClient的replaceWithLazyClient方法会出现NPE

Posted by GitBox <gi...@apache.org>.
zrlw commented on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-971427659


   最终还是把InstanceAddressURL给改了,构造方法先把consumerUrl保存下来,从service context获取consumerUrl的相关方法都改为直接读取构造方法保存的consumerUrl,这样scope model销毁之后(service context清掉consumer url),这些方法就不会再NPE了(从service context获取的consumerUrl为null)。


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw edited a comment on issue #9283: [3.0] scopeModel destroy时ReferenceCountExchangeClient的replaceWithLazyClient方法会出现NPE

Posted by GitBox <gi...@apache.org>.
zrlw edited a comment on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-971427659


   现在 #9284 采取的方法是把URL给改了,增加setConsumerUrl方法把consumerUrl保存下来,从service context获取consumerUrl的相关方法都改为直接读取之前保存的consumerUrl。


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw edited a comment on issue #9283: [3.0] scopeModel destroy时ReferenceCountExchangeClient的replaceWithLazyClient方法会出现NPE

Posted by GitBox <gi...@apache.org>.
zrlw edited a comment on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-971427659






-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw edited a comment on issue #9283: [3.0] scopeModel destroy时ReferenceCountExchangeClient的replaceWithLazyClient方法会出现NPE

Posted by GitBox <gi...@apache.org>.
zrlw edited a comment on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-971427659


   #9284 现在采取的方法:
   1. 在RpcContext销毁SERVICE_CONTEXT时,通知InstanceAddressURL采用弱引用方式保存RpcServiceContext以便能够继续访问RpcServiceContext的成员属性;
   2. 修改InstanceAddressURL获取ServiceContext的相关方法:如果ServiceContext已保存,而且从RpcContext获取的ServiceContext的consumerUrl为null,则使用保存的ServiceContext,否则使用RpcContext的ServiceContext。


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw closed issue #9283: [3.0] InstanceAddressURL不支持ReferenceCountExchangeClient的replaceWithLazyClient方法,无论scope model是否destroyed都会NPE

Posted by GitBox <gi...@apache.org>.
zrlw closed issue #9283:
URL: https://github.com/apache/dubbo/issues/9283


   


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw edited a comment on issue #9283: [3.0] scopeModel destroy时ReferenceCountExchangeClient的replaceWithLazyClient方法会出现NPE

Posted by GitBox <gi...@apache.org>.
zrlw edited a comment on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-971427659


   #9284 现在采取的方法:
   1. 在RpcContext销毁SERVICE_CONTEXT时,通知InstanceAddressURL采用强引用方式保存RpcServiceContext以便能够继续访问RpcServiceContext的成员属性;
   2. 修改InstanceAddressURL获取ServiceContext的相关方法:如果ServiceContext已保存,而且从RpcContext获取的ServiceContext的consumerUrl为null,则使用保存的ServiceContext,否则使用RpcContext的ServiceContext。


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw edited a comment on issue #9283: [3.0] scopeModel destroy时ReferenceCountExchangeClient的replaceWithLazyClient方法会出现NPE

Posted by GitBox <gi...@apache.org>.
zrlw edited a comment on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-974802426


   现在 #9284 回到了最初的方式,每次rpc调用时将当前的rpcServiceContext保存到InstanceAddressURL以支持关闭ReferenceCountExchangeClient时创建LazyConnectExchangeClient。


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw commented on issue #9283: [3.0] InstanceAddressURL不支持ReferenceCountExchangeClient的replaceWithLazyClient方法,无论scope model是否destroyed都会NPE

Posted by GitBox <gi...@apache.org>.
zrlw commented on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-981110939


   LazyConnectExchangeClient 要被作废了,所以这个issue先关了。


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw edited a comment on issue #9283: [3.0] scopeModel destroy时ReferenceCountExchangeClient的replaceWithLazyClient方法会出现NPE

Posted by GitBox <gi...@apache.org>.
zrlw edited a comment on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-971427659


   最终还是把InstanceAddressURL给改了,增加setConsumer方法把consumerUrl保存下来,从service context获取consumerUrl的相关方法都改为直接读取构造方法保存的consumerUrl,这样scope model销毁之后(service context清掉consumer url),这些方法就不会再NPE了(从service context获取的consumerUrl为null)。


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw edited a comment on issue #9283: [3.0] scopeModel destroy时ReferenceCountExchangeClient的replaceWithLazyClient方法会出现NPE

Posted by GitBox <gi...@apache.org>.
zrlw edited a comment on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-971427659


   过去两天尝试了下列修订(失败告终):
   1. 在RpcContext销毁SERVICE_CONTEXT时,通知InstanceAddressURL采用强引用方式保存RpcServiceContext以便能够继续访问RpcServiceContext的成员属性;
   2. 修改InstanceAddressURL获取ServiceContext的相关方法:如有保存的ServiceContext,而且保存的ServiceContext的consumerUrl的scope model为destroyed状态,则使用保存的ServiceContext,否则使用RpcContext的ServiceContext。
   
   验证测试类:SpringXmlConfigTest
   
   本地windows采取上述方式测试验证没有什么问题,但github构建99%的概率两个ubuntu单元测试失败,手头没有ubuntu环境,只好加了很多logger部署到github上排查原因,最终确认ubuntu环境下构建InstanceAddressURL的线程往往是main-EventThread,但是使用InstanceAddressURL对象的线程往往是main线程,main线程感知不到注册到main-EventThread线程的rcpServiceContext销毁通知方法。
   我深度怀疑同一个InstanceAddressURL对象的getServiceContext方法可能也会被多个线程调用,所以放弃了这种注册通知的修复方式。


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw commented on issue #9283: [3.0] scopeModel destroy时ReferenceCountExchangeClient的replaceWithLazyClient方法会出现NPE

Posted by GitBox <gi...@apache.org>.
zrlw commented on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-974802426


   现在 #9284 回到了最初的方式,每次rpc调用时将当前的rpcServiceContext保存到InstanceAddressURL以备使用。


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw edited a comment on issue #9283: [3.0] InstanceAddressURL不支持ReferenceCountExchangeClient的replaceWithLazyClient方法,无论scope model是否destroyed都会NPE

Posted by GitBox <gi...@apache.org>.
zrlw edited a comment on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-971427659


   过去两天尝试了下列修订(失败告终):
   1. 构建InstanceAddressURL时,注册rpc ServiceContext销毁通知方法到当前线程的rpcContext;
   2. 在RpcContext销毁SERVICE_CONTEXT时,通知InstanceAddressURL采用强引用方式保存RpcServiceContext以便能够继续访问RpcServiceContext的成员属性;
   3. 修改InstanceAddressURL获取ServiceContext的相关方法:如有保存的ServiceContext,而且保存的ServiceContext的consumerUrl的scope model为destroyed状态,则使用保存的ServiceContext,否则使用RpcContext的ServiceContext。
   
   验证测试类:SpringXmlConfigTest
   
   本地windows采取上述方式测试验证没有什么问题,但github构建99%的概率两个ubuntu单元测试失败,手头没有ubuntu环境,只好加了很多logger部署到github上排查原因,最终确认ubuntu环境下构建InstanceAddressURL的线程往往是main-EventThread,但是使用InstanceAddressURL对象的线程往往是main线程,main线程感知不到注册到main-EventThread线程的rpc ServiceContext销毁通知方法。
   我深度怀疑同一个InstanceAddressURL对象的getServiceContext方法可能也会被多个线程调用,所以放弃了这种注册通知的修复方式。


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw edited a comment on issue #9283: [3.0] scopeModel destroy时ReferenceCountExchangeClient的replaceWithLazyClient方法会出现NPE

Posted by GitBox <gi...@apache.org>.
zrlw edited a comment on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-971427659


   现在 #9284 采取的方法是把URL给改了,增加setConsumerUrl方法把consumerUrl保存下来,从service context获取consumerUrl的相关方法都改为直接读取构造方法保存的consumerUrl,这样scope model销毁之后(service context清掉consumer url),这些方法就不会再NPE了(从service context获取的consumerUrl为null)。


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org


[GitHub] [dubbo] zrlw edited a comment on issue #9283: [3.0] scopeModel destroy时ReferenceCountExchangeClient的replaceWithLazyClient方法会出现NPE

Posted by GitBox <gi...@apache.org>.
zrlw edited a comment on issue #9283:
URL: https://github.com/apache/dubbo/issues/9283#issuecomment-971427659


   #9284 现在采取的方法:
   1. 在RpcContext销毁SERVICE_CONTEXT时,通知InstanceAddressURL采用浅克隆方式保存RpcServiceContext以便继续访问RpcServiceContext的成员属性;
   2. 修改InstanceAddressURL获取ServiceContext的相关方法:如果ServiceContext已保存,而且从RpcContext获取的ServiceContext的consumerUrl为null,则使用保存的ServiceContext,否则使用RpcContext的ServiceContext。
   
   代价:每次rpc调用结束销毁SERVICE_CONTEXT时都要做一次浅克隆。


-- 
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: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org