Description
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.
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]] ...
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:
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]
The exception occurs only in OLAP mode, but also for more meaningful patterns (.dedup().dedup() really doesn't make much sense).
For a better / larger example see: https://groups.google.com/d/msg/gremlin-users/NMXExuvDjt0/ps7bJDYwAQAJ