JanusGraph / JanusGraph/janusgraph
Flaky TinkerPop test g_VX1X_repeatXbothEXcreatedX_whereXwithoutXeXX_aggregateXeX_otherVX_emit_path
- Dominant language
- Java
- Stars
- 5.8k
- Forks
- 1.2k
- Avg merge
- 13h 53m
- Merged PRs (30d)
- 6
Description
## Flaky Test
* **Test Name:** `org.apache.tinkerpop.gremlin.process.traversal.step.filter.WhereTest$Traversals
Error: org.apache.tinkerpop.gremlin.process.traversal.step.filter.WhereTest$Traversals.g_VX1X_repeatXbothEXcreatedX_whereXwithoutXeXX_aggregateXeX_otherVX_emit_path`
* **Branch:** `master`
* **Notes:** I often see this test failing for quite some time now. It was happening even before we updated to TinkerPop 3.6.4. It also happens with any storage backend (I have seen it was failing for `inmemory`, `hbase`, `cassandra`, `berkeleyje` storage backends). For example, `tp-tests (inmemory, -Pjava-11, -Dtest.skip.tp=false -DskipTests=true, 11)` job sometimes fails because of that.
### Stack Trace 1
```
Tests run: 24, Failures: 0, Errors: 1, Skipped: 9, Time elapsed: 28.534 s <<< FAILURE! - in org.apache.tinkerpop.gremlin.process.traversal.step.filter.WhereTest$Traversals
Error: org.apache.tinkerpop.gremlin.process.traversal.step.filter.WhereTest$Traversals.g_VX1X_repeatXbothEXcreatedX_whereXwithoutXeXX_aggregateXeX_otherVX_emit_path Time elapsed: 1.145 s <<< ERROR!
java.lang.IllegalStateException: org.janusgraph.core.JanusGraphException: Exception in JanusGraph
at org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.VertexProgramStep.processNextStart(VertexProgramStep.java:88)
at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:150)
at org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:55)
at org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.ComputerResultStep.processNextStart(ComputerResultStep.java:68)
at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:135)
at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:40)
at org.apache.tinkerpop.gremlin.process.traversal.Traversal.fill(Traversal.java:184)
at org.apache.tinkerpop.gremlin.process.traversal.Traversal.toList(Traversal.java:122)
at org.apache.tinkerpop.gremlin.process.traversal.step.filter.WhereTest.g_VX1X_repeatXbothEXcreatedX_whereXwithoutXeXX_aggregateXeX_otherVX_emit_path(WhereTest.java:299)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:61)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.apache.tinkerpop.gremlin.process.GremlinProcessRunner.runChild(GremlinProcessRunner.java:53)
at org.apache.tinkerpop.gremlin.process.GremlinProcessRunner.runChild(GremlinProcessRunner.java:37)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.junit.runners.Suite.runChild(Suite.java:128)
at org.apache.tinkerpop.gremlin.AbstractGremlinSuite.runChild(AbstractGremlinSuite.java:226)
at org.apache.tinkerpop.gremlin.AbstractGremlinSuite.runChild(AbstractGremlinSuite.java:51)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.apache.tinkerpop.gremlin.AbstractGremlinSuite$1.evaluate(AbstractGremlinSuite.java:235)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at org.junit.runner.JUnitCore.run(JUnitCore.java:115)
at org.junit.vintage.engine.execution.RunnerExecutor.execute(RunnerExecutor.java:42)
at org.junit.vintage.engine.VintageTestEngine.executeAllChildren(VintageTestEngine.java:80)
at org.junit.vintage.engine.VintageTestEngine.execute(VintageTestEngine.java:72)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:147)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:127)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:90)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:55)
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:[102](https://github.com/JanusGraph/janusgraph/actions/runs/5293275751/jobs/9581234812?pr=3825#step:6:103))
at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:54)
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:[114](https://github.com/JanusGraph/janusgraph/actions/runs/5293275751/jobs/9581234812?pr=3825#step:6:115))
at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86)
at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86)
at org.apache.maven.surefire.junitplatform.LazyLauncher.execute(LazyLauncher.java:50)
at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.execute(JUnitPlatformProvider.java:184)
at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invokeAllTests(JUnitPlatformProvider.java:148)
at org.apache.maven.surefire.junitplatform.JUnitPlatformProvider.invoke(JUnitPlatformProvider.java:[120](https://github.com/JanusGraph/janusgraph/actions/runs/5293275751/jobs/9581234812?pr=3825#step:6:121))
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:[162](https://github.com/JanusGraph/janusgraph/actions/runs/5293275751/jobs/9581234812?pr=3825#step:6:163))
at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)
Caused by: java.util.concurrent.ExecutionException: org.janusgraph.core.JanusGraphException: Exception in JanusGraph
at java.base/java.util.concurrent.CompletableFuture.reportGet(CompletableFuture.java:395)
at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1999)
at org.apache.tinkerpop.gremlin.process.computer.traversal.step.map.VertexProgramStep.processNextStart(VertexProgramStep.java:68)
... 62 more
Caused by: org.janusgraph.core.JanusGraphException: Exception in JanusGraph
at org.janusgraph.graphdb.olap.computer.FulgoraGraphComputer.executeIterationOfJob(FulgoraGraphComputer.java:240)
at org.janusgraph.graphdb.olap.computer.FulgoraGraphComputer.executeVertexProgram(FulgoraGraphComputer.java:217)
at org.janusgraph.graphdb.olap.computer.FulgoraGraphComputer.submitAsync(FulgoraGraphComputer.java:196)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:[170](https://github.com/JanusGraph/janusgraph/actions/runs/5293275751/jobs/9581234812?pr=3825#step:6:171)0)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: org.janusgraph.core.JanusGraphException: Failed to process [1] vertices in vertex program iteration [5]. Computer is aborting.
at org.janusgraph.graphdb.olap.computer.FulgoraGraphComputer.executeOnNonPartitionedVertices(FulgoraGraphComputer.java:271)
at org.janusgraph.graphdb.olap.computer.FulgoraGraphComputer.executeIterationOfJob(FulgoraGraphComputer.java:236)
... 4 more
```
### Stack Trace 2
```
Error: Errors:
Error: org.apache.tinkerpop.gremlin.process.traversal.step.filter.WhereTest$Traversals.g_VX1X_repeatXbothEXcreatedX_whereXwithoutXeXX_aggregateXeX_otherVX_emit_path
Error: Run 1: WhereTest$Traversals>WhereTest.g_VX1X_repeatXbothEXcreatedX_whereXwithoutXeXX_aggregateXeX_otherVX_emit_path:299 » IllegalState org.janusgraph.core.JanusGraphException: Exception in JanusGraph
[INFO] Run 2: PASS
[INFO] Run 3: PASS
[INFO]
[INFO]
Error: Tests run: 3408, Failures: 0, Errors: 1, Skipped: 296
```
Contributor guide
Research direction
Start by repeatedly running WhereTest$Traversals.g_VX1X_repeatXbothEXcreatedX_whereXwithoutXeXX_aggregateXeX_otherVX_emit_path, reported at WhereTest.java:299, with the inmemory backend and the other listed storage backends. Read the failure path through VertexProgramStep and FulgoraGraphComputer in the supplied stack traces. Done means the test no longer fails intermittently across the affected backends.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- databases, testing
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100