Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Cannot Reproduce
-
3.4.10, 3.6.1
-
None
-
None
-
Version: 3.4.10
Storage Backend: in-memory
Description
- Expected Behavior:
We construct the following scenario: x equals count nodes(A->B) path numbers, y equals count nodes(B->C) path numbers, z equals count(A->B->C) path numbers. Then z should equal to x*y.
We generate graph schema and data based on random strings and values. We build the graph with 100 vertexes, 200 edges, 20 vertex labels, and 20 edge labels.
`g.V().id()` is used to get the node ids of the graph, then can use for loop to traverse all the nodes. Here is one of our examples executed.
1) `g.V(46).repeat(out().simplePath()).until(hasId(0)).path().size()` return 9
2) `g.V(0).repeat(out().simplePath()).until(hasId(276)).path().size()` return 8
3) `g.V(46).repeat(out().simplePath()).until(hasId(0)).repeat(out().simplePath()).until(hasId(276)).path().size()`, should return 9*8. - Current Behavior:
The query 3 return 7 != 9*8. - Steps to Reproduce:
Although the randomness of the graph data generation process, we still find the problem after many attempts. Reproduce: Generate a large enough graph -> Get all node ids -> Count the number of paths for any two ids -> Multiply and compare following our strategy.