Details

Bug

Status: Closed

Major

Resolution: Cannot Reproduce

3.4.10, 3.6.1

None

None

Version: 3.4.10
Storage Backend: inmemory
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.