Daniel Kuppitz created TINKERPOP-1380:
-----------------------------------------

             Summary: dedup() doesn't dedup in rare cases
                 Key: TINKERPOP-1380
                 URL: https://issues.apache.org/jira/browse/TINKERPOP-1380
             Project: TinkerPop
          Issue Type: Bug
          Components: process
    Affects Versions: 3.2.1
            Reporter: Daniel Kuppitz


I stumbled across this issue when I tried to solve a problem on the mailing 
list. It seems like a lot of steps need to be involved in order to make it 
reproducible.

{code}
gremlin> :set max-iteration 10
gremlin> 
gremlin> g = TinkerFactory.createModern().traversal().withComputer()
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], graphcomputer]
gremlin> 
g.V().repeat(both()).until(cyclicPath()).path().aggregate("x").cap("x").unfold().dedup()
==>[v[1], v[2], v[1]]
==>[v[1], v[2], v[1]]
==>[v[1], v[3], v[1]]
==>[v[1], v[3], v[1]]
==>[v[1], v[4], v[1]]
==>[v[1], v[4], v[1]]
==>[v[2], v[1], v[2]]
==>[v[2], v[1], v[2]]
==>[v[3], v[1], v[3]]
==>[v[3], v[1], v[3]]
...
{code}

I can't reproduce it w/o using {{repeat()}}, {{aggregate()}} or {{cap()}}. It 
is reproducible without {{path()}} though. And then it even gets a little 
worse; check this out:

{code}
gremlin> 
g.V().repeat(both()).until(cyclicPath()).aggregate("x").cap("x").unfold().dedup()
==>v[1]
==>v[1]
==>v[2]
==>v[2]
==>v[3]
==>v[3]
==>v[4]
==>v[4]
==>v[5]
==>v[5]
...
gremlin> 
g.V().repeat(both()).until(cyclicPath()).aggregate("x").cap("x").unfold().dedup().dedup()
java.lang.RuntimeException: java.lang.IllegalStateException: 
java.lang.IllegalArgumentException: The memory can only be set() during vertex 
program setup and terminate: x
Display stack trace? [yN]
{code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to