- I have searched the issues of this repository and believe that this is not a duplicate.
Ⅰ. Issue Description
timeout发生如tc网络出现故障或宕机,消息实际上已达到tc时,但无法将response响应时候没有去清除mergemsgmap和futures里的数据,而是单纯的靠server的response下来再remove(详见ClientOnResponseProcessor#process),这带来一个问题,server非优雅下线的时候,这个futures和mergemsgmap无法清理,残留了数据
AbstractNettyRemotingClient#MergedSendRunnable 中也仅对发送失败时清理了futures(该内存泄露问题的前提是client发送成功,tc响应失败),mergemsgmap并没有清理
ps:该情况出现概率非常非常低,通过阅读这块代码逻辑偶然发现
Ⅱ. Describe what happened
If there is an exception, please attach the exception trace:
Just paste your stack trace here!
Ⅲ. Describe what you expected to happen
Ⅳ. How to reproduce it (as minimally and precisely as possible)
- xxx
- xxx
- xxx
Ⅴ. Anything else we need to know?
Ⅵ. Environment:
- JDK version :
- Seata version:
- OS :
- Others:
2条答案
按热度按时间ecr0jaav1#
@objcoding@slievrly@l81893521 请帮我一起确认这个问题是否实际存在
bzzcjhmw2#
I confirm that it is there.