TestSplitRecover3B 小概率find no region的问题

TestSplitRecover3B有小概率会出现find no region的问题。

打印了scheduler在接收到region上报心跳时候的regionRange的变化。上面这个问题是出现在,split了一个新region之后,删除掉 [0 00000066,]区间,然后新增[0 00000066,0 00000077]区间。新split的区间[0 00000077,]的还没有上报心跳的时候,刚好接收到了在这个区间的请求,直接报find no region。

从MustPut的处理上看,GetRegion部分确实也有不断的重试的,比较疑惑,不知道是哪一部分的实现的有问题导致的上报心跳慢了?

1 个赞

其实这本来就是稍微有点问题的。

一个小的解决方案是在每次split之后,判断如果是Leader就通过心跳立刻通知pd,而不是等定时器来发送心跳。

另外,你可以看一下这个帖子,不确定是否会有帮助。

1 个赞

我看了下,目前在split之后,如果是leader的话,会进行一次心跳发送。
我这边观察到,出现region not found的,都是新split的region,上报比较慢。

1 个赞