重启tikv后,dm不同步并且不报错

【 TiDB 使用环境`】测试环境
【 TiDB 版本】
tidb:6.1.0
dm:6.1.0
【遇到的问题】
前几天碰到的问题:dm不同步,但是也不报错。
重新全量同步后同步恢复正常
由于是测试环境,tikv部署在一个服务器上,发现内存32G内存只剩下900M,就想着重启一下tikv,结果碰到前几天一样的问题:不同步,但是也不报错。stop-task后就报如下的错误:

日志里面没有信息吗?

看上去像是这个 DM-worker 卡住了。可以抓一下 goroutine 信息贴出来吗

根据您的截图,应该是 172.20.228.3:8262/debug/pprof/goroutine?debug=2

worker和master都没报错,


就是大量这种日志


多谢大佬,能看看有什么问题吗?

上传完整的文本文件我们看一下

好的,稍等

goroutine.txt (63.1 KB)

我也看不到

感谢反馈,初步来看是 DM-worker 遇到任务报错之后,定时自动恢复任务时,卡在了任务初始化的的一个阶段上。我们稍后在 GitHub 上开一个 issue 记录一下这个问题

您能找一下这个 worker 的 stdout/stderr 日志文件,看看有什么包含 “ddl” 的报错内容吗

dm-worker_stderr日志


dm-worker_stdout日志

没有发现有ddl

大佬,这个问题有解决办法吗?

暂时还没有定位到原因,我们在 https://github.com/pingcap/tiflow/issues/6898 这里跟踪。您可以先试试重启这个 DM-worker

另外您这边出问题的任务,同步的表的数目很多吗

大概有800多个表

目前看 5.4 以及之前版本不会受到这个 bug 影响。

我们尝试本地复现一下


这个是的集群部署情况,一共2台服务器,tikv3个节点中有2个节点在同一台服务器,其他组件节点在另一条服务器(包括dm master和worker),tiflash由于内存紧张就停掉了,操作系统:Ubuntu 18.04.5 LTS (GNU/Linux 4.15.0-128-generic x86_64)。服务器配置:16C/32G

看不到明显的报错, 显示 同步已经停了, 再启动 task 看看呢

重新start-task后就报

您提供的 goroutine 栈对应的时刻,任务其实已经启动成功了。由于您这个任务包含 800 张表,任务在启动后的初始化阶段可能会等待 80 秒左右,之后应该会正常同步的。如果任务更长时间不推进的话,可能是遇到错误导致任务暂停、自动恢复,又进入了一个 80 秒的等待。这个在日志中应该会有错误信息

对于您说的这个 stop-task、query-status 超时,也是需要在出问题的时候提供 goroutine 栈信息,我们排查一下

稍等,我复现一下,业务暂时迁移走了,准备卸载,安装5.4版本的了

1 Like