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;
         }
     }

Reply via email to