nebula test 测试单机没有问题,分布式的场景很多测试不通过

环境:3台32GB虚拟机组成的集群
版本:nebula 2.6.2

使用nebula tests目录下的测试案例测试集群功能,报错信息如下:

-------------------------------------------------------------------------------------------- Captured stderr call --------------------------------------------------------------------------------------------
[2022-06-10 00:22:50,647] INFO     [ConnectionPool.py:163]:Get connection to ('172.22.1.122', '9669')
--------------------------------------------------------------------------------------------- Captured log call ----------------------------------------------------------------------------------------------
INFO     root:ConnectionPool.py:163 Get connection to ('172.22.1.122', '9669')
______________________________________________________________________________________ test_rebuild_index_after_use_fix ______________________________________________________________________________________
/root/.local/lib/python3.9/site-packages/pytest_bdd/scenario.py:177: in scenario_wrapper
    _execute_scenario(feature, scenario, request, encoding)
/root/.local/lib/python3.9/site-packages/pytest_bdd/scenario.py:143: in _execute_scenario
    _execute_step_function(request, scenario, step, step_func)
/root/.local/lib/python3.9/site-packages/pytest_bdd/scenario.py:113: in _execute_step_function
    return_value = step_func(**kwargs)
tck/conftest.py:393: in result_should_be
    cmp_dataset(request, graph_spaces, result, order=False, strict=True)
tck/conftest.py:312: in cmp_dataset
    check_resp(rs, ngql)
common/utils.py:328: in check_resp
    assert resp.is_succeeded(), msg
E   AssertionError: Fail to exec: USE nba; REBUILD TAG INDEX;, error: SpaceNotFound:

PS:单机版测试OK

你 Nebula Python 客户端的版本是多少,还有 Python 客户端那边你咋配置的 ip

nebula-python版本 2.6.0,在Makefile的命令行加了一个 --address 指向提前搭建好的集群

test_without_skip = $(TEST_PYTHON_PATH)/python3 -m pytest -m "not skip"

tck 设计时是为了给开发用的,很多用例就是分布式下会跑不过

1 个赞

再问一个问题,nebula-bench 必须是联网状态下才能生产数据吗?离线状态下,设置了环境之后,执行run.py需要下载go的依赖包

是的,主要几个点依赖:

  1. 项目本身的 python 依赖。
  2. 生产 ldbc 数据是利用 ldbc 的生成工具,依赖 hadoop 和 maven 的包。
  3. 依赖 importer 和 k6, 会下载 go 然后自动编译。

如果离线状态的话。

  1. 自己从 pypi 上下载对应的依赖,复制安装。
  2. 在有网络的机器上生成 ldbc 数据集复制过去。
  3. 直接下载 importer 和 k6 的二进制,然后复制过去,放 scripts 目录里。
1 个赞

好的,谢谢

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。