apache / apache/geaflow

[Worker]: IndexOutOfBoundsException during interactive query execution

Open
#556 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
808
Forks
188
Avg merge
3d 22h
Merged PRs (30d)
2

Description

**Describe the bug**
A clear and concise description of what the bug is.
when execute following gql:
match
(a:alert_6 where a.id='50988a0e257c6f8b0795da2ccf77c825')-[e1]->(m1:metric_6)
let
m1.contribution_metrics = metrics_contribution_rate((m1)-[e11 where type = 1]->(m11) => concat_ws('_', m11.idx_name, cast(m11.fluctuation_rate as varchar), cast(m1.fluctuation_rate as varchar)))
let
m1.topvalue = top_k_value((m1)-[e11 where type = 2]->(m11) => concat_ws('#', cast(if(m11.is_rate = 0, round(m11.fluctuation_value / m1.fluctuation_value, 2), e11.weight) as varchar), '1'))
return a,e1,m1

**Expected behavior**
A clear and concise description of what you expected to happen.
2025-07-21 10:11:48,653 [geaflow-worker-3] ERROR AbstractWorker:102 - Index: 2, Size: 2
java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
at java.util.ArrayList.rangeCheck(ArrayList.java:657)
at java.util.ArrayList.get(ArrayList.java:433)
at com.antgroup.geaflow.dsl.common.data.impl.DefaultPath.getField(DefaultPath.java:56)
at com.antgroup.geaflow.dsl.common.data.impl.DefaultPath.getField(DefaultPath.java:31)
at com.antgroup.geaflow.dsl.runtime.expression.subquery.CallQueryExpression.evaluate(CallQueryExpression.java:96)
at com.antgroup.geaflow.dsl.runtime.expression.subquery.CallQueryProxy.finishCall(CallQueryProxy.java:168)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.finish(AbstractStepOperator.java:400)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.StepMapOperator.finish(StepMapOperator.java:49)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.onReceiveAllEOD(AbstractStepOperator.java:361)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.processEod(AbstractStepOperator.java:334)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.process(AbstractStepOperator.java:294)
at com.antgroup.geaflow.dsl.runtime.traversal.collector.ChainOperatorCollector.collect(ChainOperatorCollector.java:45)
at com.antgroup.geaflow.dsl.runtime.traversal.collector.StepBroadcastCollector.collect(StepBroadcastCollector.java:32)
at com.antgroup.geaflow.dsl.runtime.traversal.collector.StepPathPruneCollector.collect(StepPathPruneCollector.java:43)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.collectEOD(AbstractStepOperator.java:421)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.onReceiveAllEOD(AbstractStepOperator.java:363)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.processEod(AbstractStepOperator.java:334)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.process(AbstractStepOperator.java:294)
at com.antgroup.geaflow.dsl.runtime.traversal.collector.ChainOperatorCollector.collect(ChainOperatorCollector.java:45)
at com.antgroup.geaflow.dsl.runtime.traversal.collector.StepBroadcastCollector.collect(StepBroadcastCollector.java:32)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.collectEOD(AbstractStepOperator.java:421)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.onReceiveAllEOD(AbstractStepOperator.java:363)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.processEod(AbstractStepOperator.java:334)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.process(AbstractStepOperator.java:294)
at com.antgroup.geaflow.dsl.runtime.traversal.ExecuteDagGroupImpl.finishIteration(ExecuteDagGroupImpl.java:99)
at com.antgroup.geaflow.dsl.runtime.engine.GeaFlowCommonTraversalFunction.finish(GeaFlowCommonTraversalFunction.java:120)
at com.antgroup.geaflow.dsl.runtime.engine.GeaFlowStaticVCTraversalFunction.finishIteration(GeaFlowStaticVCTraversalFunction.java:58)
at com.antgroup.geaflow.operator.impl.graph.traversal.statical.AbstractStaticGraphVertexCentricTraversalOp.doFinishIteration(AbstractStaticGraphVertexCentricTraversalOp.java:109)
at com.antgroup.geaflow.operator.impl.graph.algo.vc.AbstractGraphVertexCentricOp.finishIteration(AbstractGraphVertexCentricOp.java:195)
at com.antgroup.geaflow.processor.impl.graph.GraphVertexCentricProcessor.finish(GraphVertexCentricProcessor.java:102)
at com.antgroup.geaflow.runtime.core.worker.AbstractComputeWorker.finish(AbstractComputeWorker.java:67)
at com.antgroup.geaflow.runtime.core.worker.AbstractAlignedWorker.processBarrier(AbstractAlignedWorker.java:77)
at com.antgroup.geaflow.runtime.core.worker.AbstractWorker.process(AbstractWorker.java:97)
at com.antgroup.geaflow.runtime.core.protocol.AbstractIterationComputeCommand.execute(AbstractIterationComputeCommand.java:54)
at com.antgroup.geaflow.cluster.task.Task.execute(Task.java:36)
at com.antgroup.geaflow.cluster.task.runner.TaskRunner.process(TaskRunner.java:54)
at com.antgroup.geaflow.cluster.task.runner.TaskRunner.process(TaskRunner.java:24)
at com.antgroup.geaflow.cluster.task.runner.AbstractTaskRunner.run(AbstractTaskRunner.java:43)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
2025-07-21 10:11:48,656 [geaflow-worker-3] ERROR AbstractTaskRunner:48 - java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
com.antgroup.geaflow.common.exception.GeaflowRuntimeException: java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
at com.antgroup.geaflow.runtime.core.worker.AbstractWorker.process(AbstractWorker.java:103)
at com.antgroup.geaflow.runtime.core.protocol.AbstractIterationComputeCommand.execute(AbstractIterationComputeCommand.java:54)
at com.antgroup.geaflow.cluster.task.Task.execute(Task.java:36)
at com.antgroup.geaflow.cluster.task.runner.TaskRunner.process(TaskRunner.java:54)
at com.antgroup.geaflow.cluster.task.runner.TaskRunner.process(TaskRunner.java:24)
at com.antgroup.geaflow.cluster.task.runner.AbstractTaskRunner.run(AbstractTaskRunner.java:43)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
at java.util.ArrayList.rangeCheck(ArrayList.java:657)
at java.util.ArrayList.get(ArrayList.java:433)
at com.antgroup.geaflow.dsl.common.data.impl.DefaultPath.getField(DefaultPath.java:56)
at com.antgroup.geaflow.dsl.common.data.impl.DefaultPath.getField(DefaultPath.java:31)
at com.antgroup.geaflow.dsl.runtime.expression.subquery.CallQueryExpression.evaluate(CallQueryExpression.java:96)
at com.antgroup.geaflow.dsl.runtime.expression.subquery.CallQueryProxy.finishCall(CallQueryProxy.java:168)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.finish(AbstractStepOperator.java:400)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.StepMapOperator.finish(StepMapOperator.java:49)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.onReceiveAllEOD(AbstractStepOperator.java:361)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.processEod(AbstractStepOperator.java:334)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.process(AbstractStepOperator.java:294)
at com.antgroup.geaflow.dsl.runtime.traversal.collector.ChainOperatorCollector.collect(ChainOperatorCollector.java:45)
at com.antgroup.geaflow.dsl.runtime.traversal.collector.StepBroadcastCollector.collect(StepBroadcastCollector.java:32)
at com.antgroup.geaflow.dsl.runtime.traversal.collector.StepPathPruneCollector.collect(StepPathPruneCollector.java:43)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.collectEOD(AbstractStepOperator.java:421)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.onReceiveAllEOD(AbstractStepOperator.java:363)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.processEod(AbstractStepOperator.java:334)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.process(AbstractStepOperator.java:294)
at com.antgroup.geaflow.dsl.runtime.traversal.collector.ChainOperatorCollector.collect(ChainOperatorCollector.java:45)
at com.antgroup.geaflow.dsl.runtime.traversal.collector.StepBroadcastCollector.collect(StepBroadcastCollector.java:32)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.collectEOD(AbstractStepOperator.java:421)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.onReceiveAllEOD(AbstractStepOperator.java:363)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.processEod(AbstractStepOperator.java:334)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.process(AbstractStepOperator.java:294)
at com.antgroup.geaflow.dsl.runtime.traversal.ExecuteDagGroupImpl.finishIteration(ExecuteDagGroupImpl.java:99)
at com.antgroup.geaflow.dsl.runtime.engine.GeaFlowCommonTraversalFunction.finish(GeaFlowCommonTraversalFunction.java:120)
at com.antgroup.geaflow.dsl.runtime.engine.GeaFlowStaticVCTraversalFunction.finishIteration(GeaFlowStaticVCTraversalFunction.java:58)
at com.antgroup.geaflow.operator.impl.graph.traversal.statical.AbstractStaticGraphVertexCentricTraversalOp.doFinishIteration(AbstractStaticGraphVertexCentricTraversalOp.java:109)
at com.antgroup.geaflow.operator.impl.graph.algo.vc.AbstractGraphVertexCentricOp.finishIteration(AbstractGraphVertexCentricOp.java:195)
at com.antgroup.geaflow.processor.impl.graph.GraphVertexCentricProcessor.finish(GraphVertexCentricProcessor.java:102)
at com.antgroup.geaflow.runtime.core.worker.AbstractComputeWorker.finish(AbstractComputeWorker.java:67)
at com.antgroup.geaflow.runtime.core.worker.AbstractAlignedWorker.processBarrier(AbstractAlignedWorker.java:77)
at com.antgroup.geaflow.runtime.core.worker.AbstractWorker.process(AbstractWorker.java:97)
... 8 more
2025-07-14 11:44:32,131 [brpc-server-work-thread-2] INFO ContainerContext:105 - container 1 has no new events to checkpoint
2025-07-21 10:11:48,657 [geaflow-worker-3] ERROR ComponentUncaughtExceptionHandler:30 - FATAL exception in thread: geaflow-worker-3
com.antgroup.geaflow.common.exception.GeaflowRuntimeException: com.antgroup.geaflow.common.exception.GeaflowRuntimeException: java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
at com.antgroup.geaflow.cluster.task.runner.AbstractTaskRunner.run(AbstractTaskRunner.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: com.antgroup.geaflow.common.exception.GeaflowRuntimeException: java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
at com.antgroup.geaflow.runtime.core.worker.AbstractWorker.process(AbstractWorker.java:103)
at com.antgroup.geaflow.runtime.core.protocol.AbstractIterationComputeCommand.execute(AbstractIterationComputeCommand.java:54)
at com.antgroup.geaflow.cluster.task.Task.execute(Task.java:36)
at com.antgroup.geaflow.cluster.task.runner.TaskRunner.process(TaskRunner.java:54)
at com.antgroup.geaflow.cluster.task.runner.TaskRunner.process(TaskRunner.java:24)
at com.antgroup.geaflow.cluster.task.runner.AbstractTaskRunner.run(AbstractTaskRunner.java:43)
... 3 more
Caused by: java.lang.IndexOutOfBoundsException: Index: 2, Size: 2
at java.util.ArrayList.rangeCheck(ArrayList.java:657)
at java.util.ArrayList.get(ArrayList.java:433)
at com.antgroup.geaflow.dsl.common.data.impl.DefaultPath.getField(DefaultPath.java:56)
at com.antgroup.geaflow.dsl.common.data.impl.DefaultPath.getField(DefaultPath.java:31)
at com.antgroup.geaflow.dsl.runtime.expression.subquery.CallQueryExpression.evaluate(CallQueryExpression.java:96)
at com.antgroup.geaflow.dsl.runtime.expression.subquery.CallQueryProxy.finishCall(CallQueryProxy.java:168)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.finish(AbstractStepOperator.java:400)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.StepMapOperator.finish(StepMapOperator.java:49)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.onReceiveAllEOD(AbstractStepOperator.java:361)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.processEod(AbstractStepOperator.java:334)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.process(AbstractStepOperator.java:294)
at com.antgroup.geaflow.dsl.runtime.traversal.collector.ChainOperatorCollector.collect(ChainOperatorCollector.java:45)
at com.antgroup.geaflow.dsl.runtime.traversal.collector.StepBroadcastCollector.collect(StepBroadcastCollector.java:32)
at com.antgroup.geaflow.dsl.runtime.traversal.collector.StepPathPruneCollector.collect(StepPathPruneCollector.java:43)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.collectEOD(AbstractStepOperator.java:421)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.onReceiveAllEOD(AbstractStepOperator.java:363)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.processEod(AbstractStepOperator.java:334)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.process(AbstractStepOperator.java:294)
at com.antgroup.geaflow.dsl.runtime.traversal.collector.ChainOperatorCollector.collect(ChainOperatorCollector.java:45)
at com.antgroup.geaflow.dsl.runtime.traversal.collector.StepBroadcastCollector.collect(StepBroadcastCollector.java:32)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.collectEOD(AbstractStepOperator.java:421)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.onReceiveAllEOD(AbstractStepOperator.java:363)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.processEod(AbstractStepOperator.java:334)
at com.antgroup.geaflow.dsl.runtime.traversal.operator.AbstractStepOperator.process(AbstractStepOperator.java:294)
at com.antgroup.geaflow.dsl.runtime.traversal.ExecuteDagGroupImpl.finishIteration(ExecuteDagGroupImpl.java:99)
at com.antgroup.geaflow.dsl.runtime.engine.GeaFlowCommonTraversalFunction.finish(GeaFlowCommonTraversalFunction.java:120)
at com.antgroup.geaflow.dsl.runtime.engine.GeaFlowStaticVCTraversalFunction.finishIteration(GeaFlowStaticVCTraversalFunction.java:58)
at com.antgroup.geaflow.operator.impl.graph.traversal.statical.AbstractStaticGraphVertexCentricTraversalOp.doFinishIteration(AbstractStaticGraphVertexCentricTraversalOp.java:109)
at com.antgroup.geaflow.operator.impl.graph.algo.vc.AbstractGraphVertexCentricOp.finishIteration(AbstractGraphVertexCentricOp.java:195)
at com.antgroup.geaflow.processor.impl.graph.GraphVertexCentricProcessor.finish(GraphVertexCentricProcessor.java:102)
at com.antgroup.geaflow.runtime.core.worker.AbstractComputeWorker.finish(AbstractComputeWorker.java:67)
at com.antgroup.geaflow.runtime.core.worker.AbstractAlignedWorker.processBarrier(AbstractAlignedWorker.java:77)
at com.antgroup.geaflow.runtime.core.worker.AbstractWorker.process(AbstractWorker.java:97)
... 8 more

**Additional context**
Add any other context about the problem here.
branch release/0.6.3

Contributor guide

Open the contributing guide

Research direction

Start with the failing interactive query and the stack trace entry points in dsl/common/data/impl/DefaultPath.java and dsl/runtime/expression/subquery/CallQueryExpression.java. Reproduce the query, trace the field access that requests index 2 from a two-field path, and verify that execution completes without the reported IndexOutOfBoundsException.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
backend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.