Uploaded image for project: 'TinkerPop'
  1. TinkerPop
  2. TINKERPOP-2851

TinkerPop could not deal with correct path traversal results

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Cannot Reproduce
    • 3.4.10, 3.6.1
    • None
    • process
    • 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.

      Attachments

        Activity

          People

            Unassigned Unassigned
            zeyangzhuang Zeyang Zhuang
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: