请问一下,第一个是在proj3中会出现一个panic,是在store/tikv/snapshot.go中的,上面显示是proj6所需要完成的。第二个有时候test会出现卡住的现象。在注释完snapshot.go的panic()之后两个问题都不再出现,这是代码框架之间的调用问题吗?
注释的代码如下:
func (s *tikvSnapshot) get(bo *Backoffer, k kv.Key) ([]byte, error) {
// ....省略
if keyErr := cmdGetResp.GetError(); keyErr != nil {
// You need to handle the key error here
// If the key error is a lock, there are 2 possible cases:
// 1. The transaction is during commit, wait for a while and retry.
// 2. The transaction is dead with some locks left, resolve it.
// YOUR CODE HERE (proj6).
// 注释了下面这行panic
//panic("YOUR CODE HERE")
continue
}
return val, nil
}
}
还有一个就是在这个test里面,TestAddColumn有一个创建表的代码,我查看了一下调用链,在这个action中有个调用的都是原生框架提供的代码,不过也有小概率会出错: