单节点测试环境服务器断电重启TiKV无法启动

【TiDB 使用环境】测试/ Poc
【TiDB 版本】4.0.0
【操作系统】K8S部署
【部署方式】单机测试
【集群数据量】
【集群节点数】1
【问题复现路径】节点断电重启
【遇到的问题:问题现象及影响】apply index和raft index不一致,导致tikv启动失败
【资源配置】
【复制黏贴 ERROR 报错的日志】
【其他附件:截图/日志/监控】
[FATAL] [server.rs:576] [“failed to start node: EngineTraits(Other("[components/raftstore/src/store/fsm/store.rs:812]:
\"[components/raftstore/src/store/peer_storage.rs:578]: [region 2] 3 validate state fail: Other(\\\"[components/raftstore/src/store/peer_storage.rs:444]:
raft state hard_state { term: 6 vote: 3 commit: 211068331 } last_index: 211068331 not match apply state applied_index: 211068413
last_commit_index: 211068412 commit_index: 211068413 commit_term: 6 truncated_state { index: 211068360 term: 6 }
and can\\\\\\\'t be recovered.\\\")\""))”]

只要断电重启,大概率出现这个问题,应该是整个机制的问题;有哪些好的办法恢复,尽量不要丢数据,不然测试数据要全部重做。

k8s、单机部署、4.0版本,debuff叠满。

数据没写下去吧,是虚拟机吗?真是 debuff 叠满 :face_with_peeking_eye:

资源有限,多个测试环境,都部署的单机。

断点重启不会丢数,是虚拟机的问题吧。

能不放k8s里面测试吗

但凡不是k8s,重启都不会有问题,我这边tidb经常断电。从来没有起不来过

k8s部署和非k8s部署,最终的写入机制相同,都是分步提交;目前根据日志判断,就是这里判断不一致导致不能启动

我们之前改成false的时候,断电重启会出现这个问题。没啥好方案,只能改成true,或者多节点。