关于tinysql project3的test问题

请问一下,第一个是在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中有个调用的都是原生框架提供的代码,不过也有小概率会出错: