tair-opensource/RedisFullCheck

[bug] 执行退出 报错:panic: interface conversion: interface {} is int64, not []uint8

Opened this issue · 0 comments

1、遇到的问题
执行测试报错:panic: interface conversion: interface {} is int64, not []uint8

2、分析
错误位置:
CheckFullValueFetchAll 中:targetValue = targetReply[i].([]byte)

错误直接原因:
PipeRawCommand 中执行p.conn.Receive出现错误,继续执行到了 result[i] = common.TypeChanged

相关代码:
src/full_check/client/client.go 中PipeRawCommand代码:

// 此处处理不太好,但是别人代码写死了,我只能这么改了
				if strings.HasPrefix(err.Error(), specialErrorPrefix) {

我的测试简单调用关系为:
CheckFullValueFetchAll->PipeValueCommand->PipeRawCommand(commands, "")

3、初步结论:
PipeRawCommand 中 specialErrorPrefix 在一些调用中设置为“”, 这样就忽略掉了一些错误,都设置为common.TypeChanged。
这样导致无法发现server的一些错误,同时测试过程无法继续。