Marko A. Rodriguez created TINKERPOP-1281:
---------------------------------------------
Summary: Memory.HALTED_TRAVERSER transience is not sound.
Key: TINKERPOP-1281
URL: https://issues.apache.org/jira/browse/TINKERPOP-1281
Project: TinkerPop
Issue Type: Bug
Components: process
Affects Versions: 3.2.0-incubating
Reporter: Marko A. Rodriguez
{code}
g.V().out().program(xxx)
{code}
The above {{xxx}} VertexProgram will have access to the
{{VertexProperty.HALTED_TRAVERSERS}} from {{out()}}.
{code}
g.V().out().groupCount().program(yyy)
{code}
The above {{yyy}} VertexProgram will not have access to the
{{Memory.HALTED_TRAVERSERS}} from {{groupCount()}} (barrier) because it will be
declared transient.
---------
[10:32 AM] Marko Rodriguez:
this.memoryComputeKeys.add(MemoryComputeKey.of(HALTED_TRAVERSERS,
Operator.addAll, false, this.keepDistributedHaltedTraversers)); // only keep if
it will be preserved
[10:32 AM] Daniel Kuppitz: when is keepDistributedHaltedTraversers false?
[10:33 AM] Marko Rodriguez: this.keepDistributedHaltedTraversers =
!(this.traversal.get().getParent().asStep().getNextStep()
instanceof ComputerResultStep || // if its just going to stream it out, don't
distribute
this.traversal.get().getParent().asStep().getNextStep()
instanceof EmptyStep || // same as above, but if using
TraversalVertexProgramStep directly
(this.traversal.get().getParent().asStep().getNextStep() instanceof ProfileStep
&& // same as above, but needed for profiling
this.traversal.get().getParent().asStep().getNextStep().getNextStep()
instanceof ComputerResultStep));
Show more
given that ProgramVertexProgramStep is next, it will false and
thus, Memory.HALTED_TRAVERSERS is transient and is erased.
[10:34 AM] Marko Rodriguez: I think that is the problem.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)