TerryLam2010 opened a new issue, #14938:
URL: https://github.com/apache/dubbo/issues/14938

   ### Pre-check
   
   - [X] I am sure that all the content I provide is in English.
   
   
   ### Search before asking
   
   - [X] I had searched in the 
[issues](https://github.com/apache/dubbo/issues?q=is%3Aissue) and found no 
similar issues.
   
   
   ### Apache Dubbo Component
   
   Java SDK (apache/dubbo)
   
   ### Dubbo Version
   
   Dubbo Java: 3.2.3
   JDK8
   Use K8s
   
   ### Steps to reproduce this issue
   
   Provider and Consumer config:
   <dubbo:application name="${spring.application.name}" logger="slf4j" 
register-mode="all"  metadata-type="remote" >
        <dubbo:parameter key="qos.enable" value="false" />
   </dubbo:application>
   
   other config property:
   dubbo.registry.parameters.register-consumer-url : true
   dubbo.application.serialize-check-status : DISABLE
   dubbo.application.enable-empty-protection : true
   dubbo.provider.prefer-serialization : hessian2
   dubbo.provider.serialization : hessian2
   
   
   I'm from dubbo 2.7.8 upgrade to 3.2.3, found that when the provider 
referrals, consumers occasionally trigger org. Apache. The dubbo. Remoting. 
Exchange. Support. The header. The ReconnectTimerTask rewiring (only once), The 
provider itself closes the channel. But I've looked through the code, and if 
nacos is notified to go offline, the client will destroy the old DubboInvoker, 
triggering the channel shutdown and leaving the ReconnectTimerTask empty.
   My situation now is that I see the log org. Apache. Dubbo. Registry. Client. 
ServiceDiscoveryRegistryDirectory class has come in, also found that destroy 
the invoker corresponding log, However, the Close netty channel log did not 
find that although the application offline notification came, it did not close 
the channel.
   Because in the process of gradual launch, the logs I give you are all test 
environments, all in the 3.2.3 version. The production environment is basically 
2.7.8, and only one application is 3.2.3
   ——————————————————————————————————————————————————
   我是从dubbo 
2.7.8升级到3.2.3,发现当提供者下线的时候,消费者偶尔触发org.apache.dubbo.remoting.exchange.support.header.ReconnectTimerTask的重连(仅一次),是因为provider自己关闭channel了。但我浏览过代码,如果通知了nacos下线,client会将旧的DubboInvoker销毁,从而触发channel关闭以及将ReconnectTimerTask的任务置空。
   
现在我的情况是,我看日志org.apache.dubbo.registry.client.ServiceDiscoveryRegistryDirectory类有进来,也发现destroy
 invoker对应的日志,但是Close netty channel 的日志并没有发现,那就是虽然应用下线通知过来了,但是并没有关闭channel。
   
   
   ### What you expected to happen
   
   I think org. Apache. Dubbo, RPC protocol. The dubbo. 
ReferenceCountExchangeClient counter problem, lead to can not close the 
channel. Because my local online and offline is normal, only in the test 
environment and online environment is repeated, just look at the log can not 
see the problem
   
   ### Anything else
   
   2024-11-22T14:53:36,348+0800 [DUBBO] destroy 
invoker[DefaultServiceInstance{serviceName='order', host='172.29.89.45', 
port=11060, enabled=true, healthy=true, 
metadata={dubbo.endpoints=[{"port":11060,"protocol":"dubbo"}], 
dubbo.metadata.revision=e9aa0faa8181f81a787a5ce1362ce1c7, 
dubbo.metadata.storage-type=remote, timestamp=1732256698869}}, 
service{name='com.xxx.xxx.client.rpc.OrderRuleCheckRpcService',group='uat',version='null',protocol='dubbo',port='11060',params={side=provider,
 heartbeat=30000, release=3.2.3, methods=check,checkAndThrowEx, logger=slf4j, 
deprecated=false, dubbo=2.0.2, threads=20, 
interface=com.xxxx.xxxx.client.rpc.OrderRuleCheckRpcService, 
service-name-mapping=true, threadpool=cached, timeout=1000, generic=false, 
revision=1.0.0, serialize.check.status=DISABLE, serialization=hessian2, 
retries=0, metadata-type=remote, application=order, 
prefer.serialization=hessian2, dynamic=true, enable-empty-protection=true, 
group=uat},}] success. , dubbo version: 3.2.3, current 
 host: 172.29.119.195
   
   2024-11-22T14:53:36,348+0800 [DUBBO] 1 deprecated invokers deleted., dubbo 
version: 3.2.3, current host: 172.29.119.195
   
   2024-11-22T14:53:36,349+0800 [DUBBO] 
serviceKey:uat/com.xxxx.xxxx.client.rpc.OrderRuleCheckRpcService Instance 
address size 2, interface address size 3, threshold 0.0, dubbo version: 3.2.3, 
current host: 172.29.119.195
   
   2024-11-22T14:53:36,349+0800 [DUBBO] Received invokers changed event from 
registry. Registry type: instance. Service Key: 
uat/com.xxxx.xxxx.client.rpc.OrderRuleCheckRpcService. Urls Size : 2. Invokers 
Size : 2. Available Size: 2. Available Invokers : 
172.29.92.255:11060,172.29.89.9:11060, dubbo version: 3.2.3, current host: 
172.29.119.195
   
   It does not make sense that these logs are triggered, but Netty Close does 
not occur.
   触发了这些日志,但是并没有发生Netty Close,  这并不合理。
   
   ### Are you willing to submit a pull request to fix on your own?
   
   - [X] Yes I am willing to submit a pull request on my own!
   
   ### Code of Conduct
   
   - [X] I agree to follow this project's [Code of 
Conduct](https://www.apache.org/foundation/policies/conduct)
   


-- 
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