cdc报ErrRegionsNotCoverSpan错误下游写入异常

版本:v5.2.3 arm
问题:
中午14:00多发现CDC 异常,检查下游写入为0,cdc cli 检查有如下报错:
code": "CDC:ErrRegionsNotCoverSpan", "message": "[CDC:ErrReachMaxTry]reach maximum try: 100: [CDC:ErrRegionsNotCoverSpan]regions not completely left cover span, span [748000000000009fffa15f72800000001affb9c99b0000000000fa, 748000000000009fffa15f730000000000fa) regio ns: [id:1671509411 start_key:\"t\\200\\000\\000\\000\\000\\000\\237\\377\\241_r\\200\\000\\000\\000\\032\\377\\273\\013\\307\\000\\000\\000\\000\\000\\372\" end_key:\"t\\200\\000\\000\\000\\000\\000\\237\\377\\254_i\\200\\000\\000\\000 \\000\\377\\000\\000\\001\\00100-0\\3772592\\377003\\377391_8\\3771_\\377010806\\3770\\3775681895\\377\\37725_81140\\377\\3770000032\\377_\\377010810\\37747\\377472_\\000\\377\\000\\000\\000\\373\\003\\200\\000\\000\\377\\000\\0014\\21 3\\345\\000\\000\\000\\374\" region_epoch:\u003cconf_ver:80829 version:132267 \u003e peers:\u003cid:1675591530 store_id:11107291 \u003e peers:\u003cid:1675593220 store_id:56722 \u003e peers:\u003cid:1675595947 store_id:11107657 \u003e ]"
根据 错误信息 找到如下 已知问题: ScanRegions total retry time is too short · Issue #5230 · pingcap/tiflow (github.com) 该问题可能在5.2版本中目前没有修复,于是重启了cdc ,之后正常 ,过了一会后恢复正常,开始往下游写入数据, 18:00左右 再次检查发现下游写入出现断断续续的情况,于进行2次重启后恢复正常,一段时间后又不正常了。

后2次重启cdc 检查changefeed 状态 仍然显示相同错误

等待CDC开始往下游写数据后,检查cdc 状态仍有上述报错,似乎下游写入问题和这个报错没有关系。


image

146节点日志
cdc.log.tar.gz (13.3 MB) cdc-2022-09-23T20-28-40.335.log.gz (18.3 MB)

151节点日志
cdc-2022-09-23T13-36-18.561.log.gz (17.1 MB) cdc-2022-09-23T17-52-35.450.log.gz (19.2 MB)

152节点日志
cdc-2022-09-23T17-32-17.523.log.gz (16.9 MB)

看了下那个 issue ,因为 region split/merge 后导致 PD 中信息过旧,
而 cdc 一直从 PD 请求不到最新 region leader 信息,达到重试阈值报出来的;
自己测着玩的吗?

  1. 该 issue 确实会导致同步中断
  2. 看直到 4.0.16 确实都没调大重试阈值
  3. 如果是自己测着玩的,我觉得可以按照 PR 自己 fix 一下,build 一个 binary 跑跑看
  4. 或者直接升 v6.1.0 吧,6.1 fix 了

应该就是这个问题,这个报错指向还是比较明确的(PS:我没看提供的 log :rofl:)。

昨晚重启后看下游写入中间就断了一会 ,然后自己挺过去了, 但是cdc cli检查任务还是有这个报错,而且一直是一个相同的region_id。


用这个清理PD region信息是否可行
curl -X DELETE http://${HostIP}:2379/pd/api/v1/admin/cache/region/{region_id}

另外一个问题 TiCDC就是拉取日志,而监视region是 tikv cdc component,这个报错信息是tikv cdc报给TiCDC的还是TiCDC 主动要求或检查的?

  1. 这个 region id 的状态怎么都是 voter,看看 tikv.log 中,这个 region_id=1671509411 的历史信息。最开始是从什么时候出问题的?
  2. 是一直无法选出 leader 吗?

输出结果应该都是voter吧,下面有leader信息

下面这个报错应该是个bug

我升级到5.4.3也出现了这个报错 请问是怎么解决的??

暂时没解决 ,就这样跑着呢

我的直接卡住了 checkpoint不往前推进了

cdc 重启下

都重启过了 任务也删了重建了 集群也重启了 版本从4.0.9升级到5.4.3再升级到6.1.1 都没用

一直有这错误吗,看看pd-ctl region 看看报错的region情况

image 我这个是从库用的单副本的

你用5.3最新版试试

版本升级后出现kafka异常关闭连接,请问这个是什么原因