TINKERPOP-1801: fix test failures. TinkerPopComputer does not call ComputerPorgram.execute methods if spit has no vertices. For example: modern graph has 6 vertices but computer has 8 cores, there will be two empty splits. TraversalVertexProgram use execute step to setup next profiling step, so it is not setup side effects properly for empty splits. So tests did not filed in docker but failed on computer with more then 6 cores. The fix add check that profile side effects were regester properly before using
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/b49f751e Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/b49f751e Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/b49f751e Branch: refs/heads/TINKERPOP-1489 Commit: b49f751ec4755fa026d6705511a2448e543cb430 Parents: a9ca781 Author: artemaliev <artem.aliev@gmail,com> Authored: Mon Oct 30 16:10:20 2017 +0300 Committer: artemaliev <artem.aliev@gmail,com> Committed: Mon Oct 30 16:20:12 2017 +0300 ---------------------------------------------------------------------- .../process/computer/traversal/MemoryTraversalSideEffects.java | 5 +++++ .../process/computer/traversal/TraversalVertexProgram.java | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b49f751e/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/MemoryTraversalSideEffects.java ---------------------------------------------------------------------- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/MemoryTraversalSideEffects.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/MemoryTraversalSideEffects.java index bf9f8c0..deea2a5 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/MemoryTraversalSideEffects.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/MemoryTraversalSideEffects.java @@ -169,6 +169,11 @@ public final class MemoryTraversalSideEffects implements TraversalSideEffects { memoryTraversalSideEffects.phase = phase; } + public static ProgramPhase getMemorySideEffectsPhase(final Traversal.Admin<?, ?> traversal) { + return traversal.getSideEffects() instanceof MemoryTraversalSideEffects ? + ((MemoryTraversalSideEffects)traversal.getSideEffects()).phase:null; + } + public static Set<MemoryComputeKey> getMemoryComputeKeys(final Traversal.Admin<?, ?> traversal) { final Set<MemoryComputeKey> keys = new HashSet<>(); final TraversalSideEffects sideEffects = http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/b49f751e/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalVertexProgram.java ---------------------------------------------------------------------- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalVertexProgram.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalVertexProgram.java index 7472b85..f9a1e34 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalVertexProgram.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/computer/traversal/TraversalVertexProgram.java @@ -376,7 +376,9 @@ public final class TraversalVertexProgram implements VertexProgram<TraverserSet< iterationMetrics.finish(0); // reset counts iterationMetrics.setCount(TraversalMetrics.TRAVERSER_COUNT_ID,0); - this.traversal.get().getSideEffects().add(profileSteps.get(profileStepIndex).getId(), iterationMetrics); + if (null != MemoryTraversalSideEffects.getMemorySideEffectsPhase(this.traversal.get())) { + this.traversal.get().getSideEffects().add(profileSteps.get(profileStepIndex).getId(), iterationMetrics); + } iterationMetrics = null; } }