tikv节点下线卡住

执行了大概有五分钟吧,似乎没过滤到什么关键信息

执行完了,没有任何输出

目前集群中缺失leader的region状况如下:
» region --jq ‘.regions[]|select(has(“leader”)|not)|{id: .id,peer_stores: [.peers[].store_id]}’

{“id”:248156003,“peer_stores”:[24590972,24478148,268391998,24480822]}

{“id”:80335931,“peer_stores”:[38833310,24478148,256634687]}

{“id”:248266559,“peer_stores”:[24478148,38833310,256634687]}

{“id”:9506276,“peer_stores”:[38833310,24478148,256634687]}

{“id”:362351,“peer_stores”:[24478148,38833310,256634687]}

{“id”:6778802,“peer_stores”:[24478148,38833310,256634687]}

{“id”:246923725,“peer_stores”:[38833310,24478148,256634687]}

{“id”:248445984,“peer_stores”:[38833310,24590972,24478148]}

{“id”:23071258,“peer_stores”:[24590972,24478148,268391998]}

{“id”:246797073,“peer_stores”:[24478148,38833310,256634687]}

{“id”:80245963,“peer_stores”:[24590972,268391998,262397455]}

{“id”:256965,“peer_stores”:[24478148,38833310,256634687]}

{“id”:195867836,“peer_stores”:[38833310,24478148,256634687]}

{“id”:244288376,“peer_stores”:[38833310,24478148,256634687]}

{“id”:23066631,“peer_stores”:[38833310,24478148,256634687]}

{“id”:80406817,“peer_stores”:[24590972,24478148,268391998]}

{“id”:80480758,“peer_stores”:[24478148,24590972,268391998]}

{“id”:248677302,“peer_stores”:[38833310,24590972,24480822]}

{“id”:245735969,“peer_stores”:[24590972,24478148,24480822]}

{“id”:332451,“peer_stores”:[38833310,24478148,256634687]}

{“id”:14324204,“peer_stores”:[38833310,24478148,256634687]}

{“id”:38453328,“peer_stores”:[38833310,24478148,256634687]}

{“id”:248584962,“peer_stores”:[24590972,24478148,38833310]}

{“id”:247022182,“peer_stores”:[38833310,24478148,24590972]}

{“id”:2579214,“peer_stores”:[24478148,38833310,256634687]}

{“id”:3434,“peer_stores”:[24590972,24478148,268391998]}

{“id”:9520702,“peer_stores”:[38833310,24478148,256634687]}

{“id”:139439976,“peer_stores”:[24478148,38833310,256634687]}

{“id”:80365619,“peer_stores”:[24478148,24590972,38833310,24480822]}

{“id”:24215180,“peer_stores”:[24478148,38833310,256634687]}

{“id”:39077233,“peer_stores”:[24480822,24590972,268391998]}

{“id”:24271913,“peer_stores”:[24478148,24590972,24480822]}

{“id”:80401278,“peer_stores”:[38833310,24478148,256634687]}

{“id”:9427705,“peer_stores”:[38833310,24478148,256634687]}

{“id”:245999700,“peer_stores”:[38833310,24480822,24590972]}

{“id”:247419092,“peer_stores”:[38833310,24480822,262397455]}

{“id”:12563787,“peer_stores”:[24478148,24590972,268391998]}

{“id”:261757919,“peer_stores”:[24480822,38833310]}

{“id”:338610,“peer_stores”:[38833310,24478148,256634687]}

{“id”:245913901,“peer_stores”:[24478148,24590972,24480822]}

{“id”:113879901,“peer_stores”:[24590972,38833310,24478148]}

{“id”:23757219,“peer_stores”:[24590972,38833310,268391998]}

{“id”:247020627,“peer_stores”:[24480822,38833310,268391998]}

{“id”:246838547,“peer_stores”:[24478148,38833310,256634687]}

{“id”:234017108,“peer_stores”:[38833310,24480822,24478148]}

{“id”:23073113,“peer_stores”:[38833310,24478148,256634687]}

{“id”:9413063,“peer_stores”:[24478148,38833310,256634687]}

{“id”:9588953,“peer_stores”:[24478148,38833310,256634687]}

»

关于如何解决region缺失leader,有两个问题想要请教

1、tidb是否只能通过调度器自动选出leader,是否有提供手动为region添加leader的方法
2、现在下线卡住的12节点的25个region包括12在内有3个peer,如果使用 pd-ctl 的 store delete方法强制下线12节点,调度器能否自动补齐3个peer并且选出其中的leader,强制下线操作是否会对现有集群造成不良影响。

我在日志中确实发现了一些 merge 卡住的 region,但是日志有点缺,还需要补充一些信息。
就先查一个 region 139452718 吧,其他 region 应该都是类似的情况。
先用 pd-ctl 查询一下该 region 的当前信息。

这个 region 在 240 那台 TiKV 上卡住了,从日志中能看出它应该在 2021/04/25 05:06:01 左右去 merge 另一个 region,此时它的 leader 应该在 119 上,之前发的 119 日志是从 6 点 59 开始的,所以它这个时候的前后日志也需要拿一下。

1、region节点信息如下:
» region 139452718
{
“id”: 139452718,
“start_key”: “7480000000000228FF7000000000000000F8”,
“end_key”: “7480000000000228FF7600000000000000F8”,
“epoch”: {
“conf_ver”: 24807,
“version”: 54828
},
“peers”: [
{
“id”: 247696864,
“store_id”: 24590972
},
{
“id”: 279500524,
“store_id”: 268391998
},
{
“id”: 297414575,
“store_id”: 24480822
}
],
“leader”: {
“id”: 279500524,
“store_id”: 268391998
},
“written_bytes”: 0,
“read_bytes”: 0,
“written_keys”: 0,
“read_keys”: 0,
“approximate_size”: 29,
“approximate_keys”: 21300
}

2、119节点4月25日前后的日志如下:
链接: https://pan.baidu.com/s/1zp6nMk32El_uPff5aaeMuA 密码: luu2

收到,正在下载,忘了说 240 那台了,也拿一下 grep “139452718” 的日志吧

在240节点上执行grep ‘139452718’ tikv.log > 10.12.5.240.log后得到的文件10.12.5.240.log (994.2 KB)

这个时间点不对,得是 2021/04/25 05:06:01 前后的,建议多选一些 log 文件再 grep,在那之后它对应的 source region 会一直刷 target region still not catch up, skip. 这部分日志其实可以 grep -v 筛掉。

您好,执行grep ‘139452718’ ./tikv.log.2021-04-2* > region_139452718.log后得到的文件大小为0

WX20210427-142710%402x

那再试试更早一些的日志呢?


如图日期的输出也为空,现在已经在执行全log匹配了,当然这就比较耗时间了

感觉不太对,我在 119 的日志中看到 4 月 23 号 07:33 在 240 上的 region 139452718, peer id 247696864 回复过投票信息。所以按理说是有日志的,麻烦再确认一下是不是 240 或者日志文件是不是被删除了?

单独执行grep ‘139452718’ tikv.log.2021-04-23-14:06:37.999380994 确实是有输出的,之前可能是语法有误?非常抱歉,23和25的相关信息如下,如果还有其他相关信息我会及时补充

04-23.txt (3.2 KB)
04-25.txt (517.0 KB)
04-27.txt (1.5 MB)
04-22.txt (327.9 KB) 04-26.txt (161.4 KB)
04-21.txt (60.0 KB)
04-20.txt (262.8 KB)

在 4-23 到 4-25 之间应该还有其他时间的日志吧,这些也需要 grep 一下,4 月 23 号之前几天的最好也 grep 一下,多 grep 一些能方便排查问题

您好,23-25号已经没有了,补充了一下22和26的

好的,我们分析一下,等有最终结论了,更新到这个帖子中。