DM-master和DM-worker同时宕机,dm-worker上的任务无法自动转移,错误:[grpc: addrConn.createTransport failed to connect to...]

【环境】
DM v2.0.6
TiDB v4.0.13
dm部署情况:

【操作】
模拟dm-master和dm-worker同时宕机
命令如下:

kill -9 14108; kill -9 20524; mv /ccdata/tidb/dm-master-8251 /ccdata/tidb/dm-master-8251-1; mv /ccdata/tidb/dm-worker-8263 /ccdata/tidb/dm-worker-8263-1

【结果】
切换后集群状态:

dm-worker-8263上的同步任务一直未转移到其他空闲的dm-worker上,报错如下:

[2021/08/16 15:58:50.745 +08:00] [WARN] [grpclog.go:60] [“grpc: addrConn.createTransport failed to connect to {172.16.15.18:8263 0 }. Err :connection error: desc = "transport: Error wh ile dialing dial tcp 172.16.15.18:8263: connect: connection refused". Reconnecting…”][component=“embed etcd”]

具体日志:dm_master.log (237.2 KB)

在dm-worker-8263重新启动之后,同步任务才恢复:

【问题】
dm-master和dm-worker同时宕机时,为什么dm-worker上的任务没有自动转移出去?

1 个赞

请问一下 15.18:8263 在 crash 的时候。 query-status <task_name> 的返回是什么呢?

1 个赞

需要确认一下模拟的时候,task 的状态。worker 服务恢复之后恢复同步是符合预期的。

1 个赞

leader都被kill了,query-status肯定用不了的啊,而且dm-worker-8263也被kill了,没起来之前肯定不存在的;这个是leader选举成功后的task状态:

Starting component dmctl: /home/admin/.tiup/components/dmctl/v2.0.6/dmctl/dmctl --master-addr=172.16.150.185:8251 query-status dm-ddl_test
{
“result”: true,
“msg”: “”,
“sources”: [
{
“result”: false,
“msg”: “[code=38029:class=dm-master:scope=internal:level=high], Message: mysql-19980-1 relevant worker-client not found”,
“sourceStatus”: {
“source”: “mysql-19980-1”,
“worker”: “”,
“result”: null,
“relayStatus”: null
},
“subTaskStatus”: [
]
}
]
}

1 个赞

我看这边是已经提了 github 的 issue 了。后续继续留意 github issue 即可:https://github.com/pingcap/dm/issues/2002
目前正在排查。感谢反馈。

1 个赞

此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。