[Worker]: IndexOutOfBoundsException during interactive query execution
- 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
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