Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug] hasLabel() cannot be queried after inE() #1950

Open
1 task done
zhengyingying opened this issue Aug 20, 2022 · 5 comments
Open
1 task done

[Bug] hasLabel() cannot be queried after inE() #1950

zhengyingying opened this issue Aug 20, 2022 · 5 comments
Labels
bug Something isn't working gremlin TinkerPop gremlin

Comments

@zhengyingying
Copy link

Bug Type (问题类型)

No response

Before submit

  • 我已经确认现有的 IssuesFAQ 中没有相同 / 重复问题

Environment (环境信息)

  • Server Version: v0.12.0
  • Backend: memory
  • OS: CentOS
  • Data Size: 100 vertices, 200 edges

Expected & Actual behavior (期望与实际表现)

We execute the query g.V().inE('el0').hasLabel('el0','el1') and expect it returns some edges.

But it throws an exception java.lang.IllegalStateException: Illegal key 'LABEL' with more than one value.

Reproduce

The schema of the simplify graph as follows.

connection.getHugespecial().schema().propertyKey("ep0").asBoolean().ifNotExist().create();
connection.getHugespecial().schema().propertyKey("ep1").asBoolean().ifNotExist().create();
connection.getHugespecial().schema().edgeLabel("el0").sourceLabel("vl0").targetLabel("vl0").properties("ep0").ifNotExist().create();     
connection.getHugespecial().schema().edgeLabel("el1").sourceLabel("vl0").targetLabel("vl0").properties("ep1").ifNotExist().create();
connection.getHugespecial().schema().indexLabel("el0Byep0").onE("el0").by("ep0").shard().ifNotExist().create();
connection.getHugespecial().schema().indexLabel("el1Byep0").onE("el1").by("ep1").shard().ifNotExist().create();

Vertex vertex1 = new Vertex("vl0").property("vp0", true);
Vertex vertex2 = new Vertex("vl0").property("vp0", false);
Vertex vertex3 = new Vertex("vl0").property("vp0", true);
graph.addVertices(Arrays.asList(vertex1, vertex2, vertex3));

Edge edge1 = new Edge("el0").source(vertex1).target(vertex2).property("ep0", true);
Edge edge2 = new Edge("el1").source(vertex1).target(vertex3).property("ep1", false);
graph.addEdges(Arrays.asList(edge1, edge2));

GremlinManager gremlin = connection.getHugespecial().gremlin();

String query = "g.V().inE('el0').hasLabel('el0','el1')";

### Vertex/Edge example (问题点 / 边数据举例)

_No response_

### Schema [VertexLabel, EdgeLabel, IndexLabel] (元数据结构)

_No response_
@zhengyingying zhengyingying added the bug Something isn't working label Aug 20, 2022
@zhengyingying
Copy link
Author

The exception can also be triggered when we remove the label el0 in hasLabel('el0','el1'). Maybe the reason is not the multiple labels.

In addition, I find that if I execute this query as the following way, it does not throw exception but return the correct result.

g.V().inE('el0');   -- {e:{1}}
g.E(1).hasLabel('el0','el1');  -- {e:{1}}

@imbajin imbajin added the gremlin TinkerPop gremlin label Aug 31, 2022
@zhengyingying
Copy link
Author

@imbajin
I find this issue is similar to #1951. Maybe the reasons for these two issues are the same, and you can investigate them together.

I also find that a closed issue (#1735) reported the similar bug, and it seems to be fixed. But we still found it. Maybe it deserves further investigation?

@javeme
Copy link
Contributor

javeme commented Sep 23, 2022

@zhengyingying Yes it looks fixed, but due to v0.12.0 version does not contain the latest code, you can try cherry-pick that commit and execute mvn package manually to get a bugfix tar.

how to cherry-pick and package manually:

git checkout master
git pull
git checkout -b release-0.12 origin/release-0.12
git cherry-pick cadeade476e5e9773471cbc67b1a65ed505eba77
mvn package -DskipTests

@zhengyingying
Copy link
Author

@javeme Thanks! I will try to do it.

In addition, may I ask the cause of this bug?

@zhengyingying
Copy link
Author

@javeme
Hi, I have tried to build the project. But an exception was thrown on the package hugegraph-dist.

org.codehaus.plexus.component.repository.exception.ComponentLookupException: java.util.NoSuchElementException
      role: org.apache.maven.artifact.resolver.ArtifactResolver
  roleHint: project-cache-aware

How can I solve it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working gremlin TinkerPop gremlin
Projects
None yet
Development

No branches or pull requests

3 participants