升级4.0.10后,tikv全部重启

还有tiflash v4.0.10, 这个报错是pod ,使用的是官方镜像。alphie linux,编译了gdb,但是运行不了。还有别的方法吗

从报错信息来看,是 tikv http status 请求执行的 thread 因为 stack overflow 导致 tikv 进程被终止。v4.0.7 上没有问题的话,可能是之后的修改有影响,但目前暂时还不确定到底是哪一个后台 http 请求触发了什么问题。
目前可以尝试把 stack size 调大

ulimit -s
或者
ulimit -a

可以查看环境的 stacksize 大小,调大到如 20MB 试试,然后再观察一下是否会 stack overflow。

另外 alpine linux 的 default stack size 似乎很小只有 80 KB,可能跟这个配置也有关系

容器当前ulimit 设置,这些都是默认的
image
如果我要改这个,要看docker 和k8s 是否支持。还需要重构官方镜像吗?
我先手动改几个pod看看,明天会不会重启

咦这个是已经改过了么? 好像跟 alpine linux 说的默认配置不太一样

没有动过,如果觉得有变动,可以咨询下你们k8s的小伙伴,看看构建镜像的时候做了什么
这是docker 的systemd

这是docker.json
image

嗯如果好改且允许的话,可以改大一下试试。
如果只是一些 stack object 变大了的话,改大估计能解决,是有如递归死循环之类的问题的话,应该还是会挂掉,具体原因还需要再查一下。
感谢反馈

我先手动改了,明天观察下看看。三套集群,就这一套 tikv 同时挂, 另外2套集群 是在 tikv 升级的过程中挂掉。先用这个排查吧。多谢回复

@foxchan 能否提供一下重启时间左右的 pd 日志?看看有没有什么可能的定时的操作

另外之前提到的 gdb 看栈的操作能不能帮忙看看呢?

1 个赞

昨天修改了ulimit -20480, 今天下午4.0.10 版本tikv 还是会同时重启,4.0.8版本tikv 没有问题
image

k8s部署的, gdb编译安装后运行报错,可以看之前发的截图,有别的方式能调试这个core文件吗
附件是16点的pd日志
pd.log (2.5 KB)

@foxchan 感谢反馈。这样看确实是有问题,这个环境可以部署 debug 版本的 binary server 么?如果可以我们可能需要出一个 binary debug 版本的 tikv-server,进一步追踪重启前发生的操作。

你们可以提供一下 binary debug 版本的 tikv-server 我们替换其中一两个节点看看

经排查,该问题是 4.0.9 以及 4.0.10 版本的 bug

触发条件:

访问 dashboard,或通过 sql 访问 hardware 系统表触发该问题。该帖子触发是由于打开了 tidb telemetry 功能每 24h 搜集一次统计信息,https://docs.pingcap.com/zh/tidb/stable/telemetry 每次搜集导致所有 tikv node stackoverflow 重启

当前问题解决方式:关闭 tidb 的遥测功能,后续 4.0.11 中会修复该问题。

奇怪 我们也是 v4.0.9 从来没重启过

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