apache / apache/incubator-seata

微服务停止之后,seata服务没有监听到断开连接。造成微服务再次启动的时候连接失败。

Open
#3,105 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
26k
Forks
8.8k
Avg merge
1d 8h
Merged PRs (30d)
4

Description

###Ⅰ. Environment:

- seata-version:1.3.0
- springboot:2.2.4.RELEASE
- dubbo:2.7.1
- nacos:1.3.1

### Ⅱ. Issue Description
```
您好!
首先在我的seata和微服务第一次启动的时候可以成功注册上。然后我尝试修改微服务业务逻辑,停止掉了微服务,偶尔seata的能够监听到连接断开。
当我再次启动微服务的时候就无法连接,我通过查看seata的日志看到之前的连接并没有断开。是我尝试按 Ctrl+c 才有断开的连接提示。之后我再次启动微服务发现是可以成功连接上的。
```

```
2020-09-10 22:08:00.433 INFO 10224 --- [ main] c.h.s.a.p.ActivityProviderApplication : Started ActivityProviderApplication in 6.827 seconds (JVM running for 8.067)
2020-09-10 22:08:56.139 INFO 10224 --- [eoutChecker_1_1] i.s.c.r.netty.NettyClientChannelManager : will connect to 192.168.1.103:8091
2020-09-10 22:08:56.141 INFO 10224 --- [eoutChecker_1_1] i.s.core.rpc.netty.NettyPoolableFactory : NettyPool create channel to transactionRole:TMROLE,address:192.168.1.103:8091,msg:< RegisterTMRequest{applicationId='applicationName', transactionServiceGroup='my_test_tx_group'} >
2020-09-10 22:08:56.197 INFO 10224 --- [eoutChecker_1_1] i.s.c.rpc.netty.TmNettyRemotingClient : register TM success. client version:1.3.0, server version:1.3.0,channel:[id: 0x8b687439, L:/192.168.1.103:4353 - R:/192.168.1.103:8091]
2020-09-10 22:08:56.204 INFO 10224 --- [eoutChecker_1_1] i.s.core.rpc.netty.NettyPoolableFactory : register success, cost 48 ms, version:1.3.0,role:TMROLE,channel:[id: 0x8b687439, L:/192.168.1.103:4353 - R:/192.168.1.103:8091]
2020-09-10 22:08:56.330 INFO 10224 --- [eoutChecker_2_1] i.s.c.r.netty.NettyClientChannelManager : will connect to 192.168.1.103:8091
2020-09-10 22:08:56.331 INFO 10224 --- [eoutChecker_2_1] i.s.core.rpc.netty.NettyPoolableFactory : NettyPool create channel to transactionRole:RMROLE,address:192.168.1.103:8091,msg:< RegisterRMRequest{resourceIds='null', applicationId='applicationName', transactionServiceGroup='my_test_tx_group'} >
2020-09-10 22:08:56.354 INFO 10224 --- [eoutChecker_2_1] i.s.c.rpc.netty.RmNettyRemotingClient : register RM success. client version:1.3.0, server version:1.3.0,channel:[id: 0x725fe817, L:/192.168.1.103:4358 - R:/192.168.1.103:8091]
2020-09-10 22:08:56.354 INFO 10224 --- [eoutChecker_2_1] i.s.core.rpc.netty.NettyPoolableFactory : register success, cost 9 ms, version:1.3.0,role:RMROLE,channel:[id: 0x725fe817, L:/192.168.1.103:4358 - R:/192.168.1.103:8091]
2020-09-10 22:09:11.198 INFO 10224 --- [ctor_TMROLE_1_1] i.s.c.r.n.AbstractNettyRemotingClient : channel [id: 0x8b687439, L:/192.168.1.103:4353 - R:/192.168.1.103:8091] read idle.
2020-09-10 22:09:11.198 INFO 10224 --- [ctor_TMROLE_1_1] i.s.core.rpc.netty.NettyPoolableFactory : will destroy channel:[id: 0x8b687439, L:/192.168.1.103:4353 - R:/192.168.1.103:8091]
2020-09-10 22:09:11.198 INFO 10224 --- [ctor_TMROLE_1_1] i.s.c.r.n.AbstractNettyRemotingClient : ChannelHandlerContext(AbstractNettyRemotingClient$ClientHandler#0, [id: 0x8b687439, L:/192.168.1.103:4353 - R:/192.168.1.103:8091]) will closed
2020-09-10 22:09:11.199 INFO 10224 --- [ctor_TMROLE_1_1] i.s.c.r.n.AbstractNettyRemotingClient : ChannelHandlerContext(AbstractNettyRemotingClient$ClientHandler#0, [id: 0x8b687439, L:/192.168.1.103:4353 ! R:/192.168.1.103:8091]) will closed
2020-09-10 22:09:11.200 INFO 10224 --- [ctor_TMROLE_1_1] i.s.c.r.netty.NettyClientChannelManager : return to pool, rm channel:[id: 0x8b687439, L:/192.168.1.103:4353 ! R:/192.168.1.103:8091]
2020-09-10 22:09:11.200 INFO 10224 --- [ctor_TMROLE_1_1] i.s.core.rpc.netty.NettyPoolableFactory : channel valid false,channel:[id: 0x8b687439, L:/192.168.1.103:4353 ! R:/192.168.1.103:8091]
2020-09-10 22:09:11.200 INFO 10224 --- [ctor_TMROLE_1_1] i.s.core.rpc.netty.NettyPoolableFactory : will destroy channel:[id: 0x8b687439, L:/192.168.1.103:4353 ! R:/192.168.1.103:8091]
2020-09-10 22:09:11.200 INFO 10224 --- [ctor_TMROLE_1_1] i.s.c.r.n.AbstractNettyRemotingClient : ChannelHandlerContext(AbstractNettyRemotingClient$ClientHandler#0, [id: 0x8b687439, L:/192.168.1.103:4353 ! R:/192.168.1.103:8091]) will closed
2020-09-10 22:09:11.200 INFO 10224 --- [ctor_TMROLE_1_1] i.s.c.r.n.AbstractNettyRemotingClient : ChannelHandlerContext(AbstractNettyRemotingClient$ClientHandler#0, [id: 0x8b687439, L:/192.168.1.103:4353 ! R:/192.168.1.103:8091]) will closed
2020-09-10 22:09:11.200 INFO 10224 --- [ctor_TMROLE_1_1] i.s.c.r.n.AbstractNettyRemotingClient : channel inactive: [id: 0x8b687439, L:/192.168.1.103:4353 ! R:/192.168.1.103:8091]
2020-09-10 22:09:11.200 INFO 10224 --- [ctor_TMROLE_1_1] i.s.core.rpc.netty.NettyPoolableFactory : channel valid false,channel:[id: 0x8b687439, L:/192.168.1.103:4353 ! R:/192.168.1.103:8091]
2020-09-10 22:09:11.200 INFO 10224 --- [ctor_TMROLE_1_1] i.s.core.rpc.netty.NettyPoolableFactory : will destroy channel:[id: 0x8b687439, L:/192.168.1.103:4353 ! R:/192.168.1.103:8091]
2020-09-10 22:09:11.200 INFO 10224 --- [ctor_TMROLE_1_1] i.s.c.r.n.AbstractNettyRemotingClient : ChannelHandlerContext(AbstractNettyRemotingClient$ClientHandler#0, [id: 0x8b687439, L:/192.168.1.103:4353 ! R:/192.168.1.103:8091]) will closed
2020-09-10 22:09:11.200 INFO 10224 --- [ctor_TMROLE_1_1] i.s.c.r.n.AbstractNettyRemotingClient : ChannelHandlerContext(AbstractNettyRemotingClient$ClientHandler#0, [id: 0x8b687439, L:/192.168.1.103:4353 ! R:/192.168.1.103:8091]) will closed
```

Contributor guide

Open the contributing guide

Research direction

Reproduce the stop-and-restart sequence using Seata 1.3.0 with Spring Boot, Dubbo, and Nacos, then inspect the connection lifecycle around NettyClientChannelManager, NettyPoolableFactory, and AbstractNettyRemotingClient. Compare behavior after a normal stop with Ctrl+C. Done means Seata detects the disconnected microservice and allows it to reconnect successfully without manual intervention.

Written by the indexing model from the issue text.

Assessment

Tech stack
java, spring-boot
Domain
backend, distributed-systems, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.