StorageClient没有正确地返回节点属性

  • nebula 版本:2.0.0、Java Client 2.0.0
  • 是否为线上版本:Y

首先,我们的节点很简单:
image
且数据也很简单:


在使用StorageClient扫描该节点时,指定扫描所有属性,却返回空属性:

image
通过调试StorageClient代码,发现对于private ScanVertexResultIterator scanVertex(String spaceName, List<Integer> parts, String tagName, List<String> returnCols, boolean noColumns, int limit, long startTime, long endTime, boolean allowPartSuccess, boolean allowReadFromFollower)这个方法,在returnCols.size()==0即需要扫描所有属性时,metaManager没有返回正确的column(应有city这个column,但返回空列表):

另外,该问题在其它节点上没有复现出来,不过其它节点的数据不太方便展示。
希望可以在月底的Java Client上线时尽快修复,谢谢!

  1. 你的nebula服务是什么方式安装的,rpm包么,提一下rpm包名吧
  2. 你的schema是动态创建的么, metaManager获取schema时没有拿到
    city0425这个tag 的schema信息,你贴下meta的日志。

1、是源码编译安装的;
2.1、请问动态创建是什么意思?
2.2、meta日志是nebula-metad.INFO、nebula-metad.WARNING、nebula-metad.ERROR这三个吗,这三个里面都没有新日志,此外也没有新的nebula-matad.[HOSTNAME].log.[INFO/WARNING/ERROR].[TIME]日志文件。

另外两台机器也是源码安装么, 什么时候拉的代码,commitId是多少, 你用的客户端是什么版本,是2.0.0还是SNAPSHOT。

tag是在你的描述程序启动后创建的还是之前就有
2.2、metaClient获取schema信息时 meta服务会受到请求的,没有日志打印要看下你的日志级别。

都是源码安装,commitid是91639dbcc8e1077e724617ef10504535b185e541:

客户端版本是2.0.0:
image

tag是之前就有的

日志级别:
image
又看了下metad-stdout.log和metad-stderr.log两个文件,也都是空的

你可以直接使用metaManager调用一下getTag接口,看返回的结果中是否有属性信息。 其他机器上是正常的,只有一台机器异常,你show hosts meta 看下这台机器和集群中其他机器有啥不一样。

metaManager调用getTag:


此外并没有一台机器异常其它机器正常的情况,逐台连接集群中的每台机器,都有这个问题

可能是我一开始表述地不太清楚,“该问题在其它节点上没有复现出来”的意思是,如果tagName从“city0425”换成同space中的其它tag,或换成不同space中的其它tag,一切都是正常的

这是指什么意思?其他节点也是查不出tag的属性么

好的

你这个city0425的tag 有没有更新过schema。

没记错的话应该是更新过,原本没有属性,后来添加了city属性。

metaManager返回的schema信息中version为0, 但其实你的版本已经是1了,感谢反馈,我们会尽快修复。

该主题在最后一个回复创建后7天后自动关闭。不再允许新的回复。

浙ICP备20010487号