-
Notifications
You must be signed in to change notification settings - Fork 8.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
bugfix: fix TMClinet reconnect exception #1269
The head ref may contain hidden characters: "bugfix-\u4FEE\u590DTM\u7AEF\u91CD\u8FDE\u5F02\u5E38"
Conversation
…Exception can not register RM,err:Timeout waiting for idle object
Codecov Report
@@ Coverage Diff @@
## develop #1269 +/- ##
=============================================
+ Coverage 49.4% 49.42% +0.02%
Complexity 1651 1651
=============================================
Files 326 326
Lines 11448 11445 -3
Branches 1416 1416
=============================================
+ Hits 5656 5657 +1
+ Misses 5162 5158 -4
Partials 630 630
Continue to review full report at Codecov.
|
core/src/main/java/io/seata/core/rpc/netty/NettyClientChannelManager.java
Show resolved
Hide resolved
归还连接,连接正常可用,再次取连接不走makeObj,所以导致channeMap为空。 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it's okey to me.
TMClient发送消息到TC端,如果TC端返回的Response中resultCode字段值为Failed时,TM端的重连会报
io.seata.common.exception.FrameworkException: can not register RM,err:Timeout waiting for idle object。原因是TM端的Netty连接池maxActive配置为1,TC返回失败后,TMClient会归还连接到连接池。同时清除掉该Channel,但是在没分钟一次的reconnect操作时,并没有将创建的Channel放入Channel缓存池,导致后面的所有Channel都是基于连接池创建