Skip to content

[Bug] Unexpected ArrayIndexOutOfBoundsException for filter-step and repeat()-step #2935

@guijinxin

Description

@guijinxin

Bug Type (问题类型)

gremlin (结果不合预期)

Before submit

  • 我已经确认现有的 IssuesFAQ 中没有相同 / 重复问题 (I have confirmed and searched that there are no similar problems in the historical issue and documents)

Environment (环境信息)

  • Server Version: 1.7.0
  • Backend: RocksDB x nodes
  • OS: 192 CPUs, 256 G RAM, Ubuntu 22.04
  • Data Size: 50 vertices, 100 edges

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

Expected behavior

For the two query below, the same result should be returned:

g.V().has('vp4', lt('')).repeat(__.out('el2')).emit().times(1).count()
g.V().match(__.as('start').has('vp4', lt('')).union(__.out('el2')).as('m')).select('m').count()

Actual behavior

  • The first query thrown a exception: java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
  • The second query returned the results normally.

Additional Context

  • We moved thehas(...) step and repeat()step in first query into the match()step and replace the repeat() with union() step, which should not affect the result.
  • When I executed these two queries on Janusgraph and Tinkerpop, they both returned the same results and were consistent with the results of the second query.
  • I have implemented a fuzzing tool and am using it to test HugeGraph. To reduce the burden on developers, I have simplified the test cases as much as possible and isolated irrelevant information.

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

none

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

none

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinggremlinTinkerPop gremlin

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions