meta leader磁盘满了,raft 返回leader changed错误,但是并没有切主

meta和storage使用的同一个目录盘,磁盘满了以后,按照目前代码逻辑,所有的写rocksdb信息都会失败,包括graph和storage的同步心跳信息,meta的心跳同步空日志,写wal也会失败,会报错leader changed,但是因为leader的心跳第二部分,不会写rocksdb,导致leader一直续租成功,没有办法切主,这里是不是有点不合理

确实存在这个问题。目前主要是实现导致必须有你说的第二种心跳,这种心跳的存在可以解决疯狂切主的问题,但的确也会导致该切主的时候无法切主,只能通过报错来及时发现了。

wal那里我看写的时候会判断一下磁盘空间,小于阈值就返回,我猜测是为了防止写rocksdb的时候失败core了,不过看起来没有考虑写wal成功,写rocksdb失败的情况,多个进程使用同一个目录,在wal 和 写rocksdb之间 磁盘被打满了(概率很小),也会core

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