TarsCloud / TarsFramework

Tars Basic service framework
BSD 3-Clause "New" or "Revised" License
198 stars 143 forks source link

无损任务批量停止的服务无法下线 #109

Open jarod opened 2 years ago

jarod commented 2 years ago

下线的时候提示运行中的服务无法下线

看了下是这里的代码没有更新present_state字段的值导致的,由于不清楚为什么不更新这个字段的逻辑,就不直接提PR了 https://github.com/TarsCloud/TarsFramework/blob/5e9501c26b4e10b5641ae80534478175eef3cea3/AdminRegistryServer/AdminRegistryImp.cpp#L506

shevqko commented 2 years ago

present_state 状态值不在tarsAdminregistry这里修改,而是会调用tarsnode的stopServer接口,在tarsnode中如果正常把服务停止成功,会自己主动调用主控去修改这个状态值。这里如果字段没有更新成功, 确认下是不是tarsnode服务停止服务失败了。

jarod commented 2 years ago

present_state 状态值不在tarsAdminregistry这里修改,而是会调用tarsnode的stopServer接口,在tarsnode中如果正常把服务停止成功,会自己主动调用主控去修改这个状态值。这里如果字段没有更新成功, 确认下是不是tarsnode服务停止服务失败了。

确认进程是已经停止的。这个是必现的,无损任务停止的都提示运行中,普通停止都没问题

ruanshudong commented 2 years ago

试了一下, 貌似没出现, 怎么复现?

jarod commented 2 years ago

操作就是勾选服务的节点->批量停止->启用无损任务->确认。节点停止后->更多命令->下线服务。 我这边部署了3套集群,有2套会出现,有一套不会。后面再研究下有什么区别

shevqko commented 2 years ago

服务无损当时停止之后,有在管理平台上面看服务的当前状态吗?是否为inactive?

jarod commented 2 years ago

停止后是3个Inactive。 今天试了一下,一个上周无损停止后不能下线的服务,今天直接操作下线成功了。

设置状态 当前状态 流量状态
Inactive Inactive Inactive