JanusGraph / JanusGraph/janusgraph

Flaky TinkerPop test g_VX1X_repeatXbothEXcreatedX_whereXwithoutXeXX_aggregateXeX_otherVX_emit_path

Open
#3,841 1 comment 0 reactions 0 assignees View on GitHub
area/testing testing/flaky
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.