【环境】
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 个赞
QBin
(Bin)
2
请问一下 15.18:8263 在 crash 的时候。 query-status <task_name> 的返回是什么呢?
1 个赞
QBin
(Bin)
4
需要确认一下模拟的时候,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 个赞
QBin
(Bin)
6
我看这边是已经提了 github 的 issue 了。后续继续留意 github issue 即可:https://github.com/pingcap/dm/issues/2002
目前正在排查。感谢反馈。
1 个赞
system
(system)
关闭
7
此话题已在最后回复的 1 分钟后被自动关闭。不再允许新回复。