本地测试可以通过,但是在服务器测试总是爆出连接错误

UPDATE update_table_1 SET t_name='MZH0UXPQ27BH' WHERE id=67;
+ failed to receive response from observer. reason=Failed to receive from server. poll return POLLHUP=16 or POLLERR=str(event & select.POLLERR)
failed to receive response from observer. reason=Failed to receive from server. poll return POLLHUP=16 or POLLERR=str(event & select.POLLERR)

本地测试都过了,但是服务器上测试了几十遍都过不了,而且每次出错的代码执行条数都不一样(有时候id=67,有时候是90多、40多)。网上说的该cmake、build-debug都试过了,还是过不了。

这个通常是由于observer执行时出现了异常。
远程测试执行时是使用python创建随机命令执行的,所以每次报错的地方很可能是不同的。
建议本地采用 release 模式编译observer来测试:

bash build.sh release

还要确认编译时 ENABLE_ASAN 选项是开启的(默认就是开启的)

您好,我向您所说的那样,执行完bash build.sh release命令后进入build_release文件夹运行
./bin/observer -f ../etc/observer.ini -P cli指令,随后进行测试,结果依然正确。

至于ENABLE_ASAN是否开着的问题,我在miniob目录下使用字符串搜索,可见所有ENABLE_ASAN都是打开状态。因此我在向GitHub仓库更新提交以后重新提测,出现同样错误,请问这还可能是什么原因呢?



再次感谢您的回答 :heart:

看你的测试用例比较简单,你构造了哪些测试用例呢?
这个测试中会先插入数据,然后执行一系列的更新操作,更新操作中间会穿插一些查询。

1 个赞