TiCDC 创建同步任务报错 [CDC:ErrChangeFeedNotExists]changefeed not exists

  • 【TiDB 版本】:v4.0.6
  • 【TiCDC 版本】:v4.0.2-237-gcddc70

新建一个同步任务同步一张表到mysql,创建时报以上错误。

使用remove -f强制删除任务后,重新创建依然报以上错误。

当前已有10个左右同步任务,分别同步到kafka与mysql。

昨天将cdc组件进行了升级:
tiup update cdc --nightly
wget https://tiup-mirrors.pingcap.com/cdc-v5.0.0-nightly-20201126-linux-amd64.tar.gz
tiup cluster patch tidb-test /home/tidb/cdc-v5.0.0-nightly-20201126-linux-amd64.tar.gz -N ipaddr

操作命令:
tiup cdc cli changefeed remove -c “mysql-prod-enterprise-db-tax-credit-pro” -f
tiup cdc cli changefeed create --sink-uri=“mysql://root:pass@172.16.188.139:3306/” --changefeed-id=“mysql-prod-enterprise-db-tax-credit-pro” --config=/data/cdc_file/mysql-prod-enterprise-db-tax-credit-pro.toml

同步任务报错信息:
{
“id”: “mysql-prod-enterprise-db-tax-credit-pro”,
“summary”: {
“state”: “stopped”,
“tso”: 421119380795687251,
“checkpoint”: “2020-11-27 10:09:10.423”,
“error”: {
“addr”: “172.16.72.20:8300”,
“code”: “CDC:ErrProcessorUnknown”,
“message”: “[CDC:ErrChangeFeedNotExists]changefeed not exists, key: /tidb/cdc/job/mysql-prod-enterprise-db-tax-credit-pro”
}
}
}

cdc日志信息:

  • 10:09:26 操作 remove changefeed 是对该 changefeed 第一次 remove 操作么
  • 操作之前 changefeed 是什么状态
  • 能否提供一下目前 cdc 服务的 debug 信息 curl http://:8300/debug/info > debug.log

我重新复现执行了一遍,debug日志邮件发给你了。包括以下信息

  1. 创建任务时错误。
  2. 强制删除任务
  3. 再次创建任务仍然报错。

提供的日志最早时间是 [2020/11/27 11:27:30.872 +08:00],和操作出错的时间不匹配。而且日志里看 mysql-prod-enterprise-db-tax-credit-pro 这个任务是在运行的

我把所有任务都删除了。然后重启了cdc。重新创建了任务

复现的问题麻烦看下任务 polar-searchsyncrisk-cooperation-risk-sync

  • curl http://:8300/debug/info > debug.log 可以请求 owner 节点获取一下这个信息么。
  • 删除所有任务,这个是如何操作的

3个节点的信息都拿出来了。

curl http://172.16.72.18:8300/debug/info > debug.log
curl http://172.16.72.19:8300/debug/info >> debug.log
curl http://172.16.72.20:8300/debug/info >> debug.log

debug.log (155.8 KB)

remove -f 一个一个删除同步任务的。

然后我刚才又试了一下删除任务然后同步。现在就可以创建成功了。。不知道是什么问题。。。

现在创建任务又出现新的报错了。。。。我过一会再试试,或者你那边需要分析什么数据我提供给你。
[CDC:ErrKafkaFlushUnfished]flush not finished before producer close

{
“id”: “sch-kafka”,
“summary”: {
“state”: “stopped”,
“tso”: 421123238729613358,
“checkpoint”: “2020-11-27 14:14:27.273”,
“error”: {
“addr”: “172.16.72.19:8300”,
“code”: “CDC:ErrProcessorUnknown”,
“message”: “[CDC:ErrKafkaFlushUnfished]flush not finished before producer close”
}
}
}

等了30分左右,把任务名称改了一下,删除重建又可以了。。。。

从日志看是暂停或者删除任务的时候 processor 没有正确响应,有可能是协程内有卡住的情况。
之后操作暂停或者删除任务时候,可以注意以下几点:

  • 观察日志内以下退出信息

    [2020/11/27 15:29:39.371 +08:00] [INFO] [processor.go:372] [“Local resolved worker exited”]
    [2020/11/27 15:29:39.371 +08:00] [INFO] [processor.go:807] [“syncResolved stopped”]
    [2020/11/27 15:29:41.375 +08:00] [INFO] [changefeed.go:965] [“changefeed closed”] [id=test-cf]
    [2020/11/27 15:29:41.375 +08:00] [INFO] [owner.go:355] [“changefeed exited”] [changfeed=test-cf]
    [2020/11/27 15:29:41.376 +08:00] [INFO] [processor.go:1285] [“processor exited”] [captureid=03a33cee-3e1c-4346-b9db-5689e0f7dbd1] [captureaddr=127.0.0.1:8300] [changefeedid=test-cf] [processorid=73caf710-8c02-4532-8df9-18928f93119a]

  • 通过 cdc cli changefeed list 查看对应任务状态

确保任务完全退出后进行后续操作

1 Like

好的,感谢~

:+1::+1::+1:

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