pd处理hot region时panic

【 TiDB 使用环境】生产环境
【 TiDB 版本】tikv v6.1.0
【复现路径】环境遭遇断电,TiKV部分节点失效,不断重启。pd节点会不定期panic重启
【遇到的问题:问题现象及影响】
TiKV集群在断电后重启,出现部分节点无法恢复的情况。pd能提供服务,但不定期(十几二十分钟)会重启,panic信息是处理热点region。在此期间,使用tikv-ctl bad-ssts检测坏的sst时会因为pd重启而失败,无法进一步修复TiKV节点。

【附件:截图/日志/监控】pd panic日志:
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x1bc477e]

goroutine 488 [running]:
github.com/tikv/pd/server.(*Handler).packHotRegions(0xc0005ada70, 0x1a38d66?, {0x2708d13, 0x4})
/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/pd/server/handler.go:1050 +0x37e
github.com/tikv/pd/server.(*Handler).PackHistoryHotReadRegions(0xc001f3ee30?)
/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/pd/server/handler.go:1005 +0x3e
github.com/tikv/pd/server/storage.(*HotRegionStorage).pullHotRegionInfo(0xc0008b8980)
/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/pd/server/storage/hot_region_storage.go:258 +0x2e
github.com/tikv/pd/server/storage.(*HotRegionStorage).backgroundFlush(0xc0008b8980)
/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/pd/server/storage/hot_region_storage.go:218 +0x195
created by github.com/tikv/pd/server/storage.NewHotRegionsStorage
/home/jenkins/agent/workspace/build-common/go/src/github.com/pingcap/pd/server/storage/hot_region_storage.go:159 +0x21b

1 个赞

环境遭遇断电… :rofl:

PD 节点能正常提供服务么? 还是 PD 也有问题了

断电相关的用户反馈多吗 :smiling_face_with_tear:
pd能正常提供服务,只是用tikv-ctl工具的时候,需要连pd,如果pd中间重启了,工具就失败了。
从报错日志上来看,感觉是pd的一个bug

都上生产了,没 ups 来续命么?

首先你要确保 PD 能正常工作,如果 PD 不正常,先修复 PD…

不定期重启不就不正常吗,关键这报错也不知道咋修啊,只是先停掉了pd的调度。

你有几个pd节点?所有的都断电了?切换一下主节点试试呢?

1 个赞

乖乖,先修复 PD吧

尝试正常重启下

最后搞定没

可能和下面这个issue有关。
https://github.com/tikv/pd/issues/5491

6.1.2的说明了里面说是修复了这个问题。
https://docs.pingcap.com/zh/tidb/v6.1/release-6.1.2
建议升级到6.1.2试试看。

我在github上提了个Issue https://github.com/tikv/pd/issues/6647#issuecomment-1600434267
有个大佬提到在 https://github.com/tikv/pd/pull/5330 中进行了修复,看changes确实修复了报错。
v6.3.0解决了该问题

1 个赞

v6.3.0有修复

1 个赞

建议你在生产环境还是尽量使用LTS版本。

https://docs.pingcap.com/zh/tidb/stable/versioning#长期支持版本

开发里程碑版本 (Development Milestone Releases, DMR) 约每两个月发布一次。如遇 LTS 发版,DMR 发版时间顺延两个月。DMR 会引入新的功能、改进和修复。但 TiDB 不提供基于 DMR 的补丁版本,如有相关 bug 会在后续版本系列中陆续修复。

DMR版本的问题是没有后续的补丁。不是很推荐生产环境使用。

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