- changed status to resolved
Generate the same hash-code for two vertices/edges with the same ID
Issue #8
resolved
Reported by user: Gremlin queries may run into infinite loops with READ_COMMITTED mode because the queries are using direct hash-codes to identify if two vertices/edges are the same, rather than hash-codes on the ID.
Here is an example stack trace:
at java.util.HashMap.getEntry(HashMap.java:446)
at java.util.HashMap.containsKey(HashMap.java:434)
at java.util.HashSet.contains(HashSet.java:201)
at com.tinkerpop.pipes.filter.DuplicateFilterPipe.processNextStart(DuplicateFilterPipe.java:42)
at com.tinkerpop.pipes.AbstractPipe.hasNext(AbstractPipe.java:98)
at com.tinkerpop.pipes.util.Pipeline.hasNext(Pipeline.java:105)
at com.tinkerpop.pipes.branch.FairMergePipe.processNextStart(FairMergePipe.java:32)
at com.tinkerpop.pipes.AbstractPipe.next(AbstractPipe.java:89)
at com.tinkerpop.pipes.util.Pipeline.next(Pipeline.java:115)
at com.tinkerpop.pipes.branch.LoopPipe.processNextStart(LoopPipe.java:44)
at com.tinkerpop.pipes.AbstractPipe.next(AbstractPipe.java:89)
at com.tinkerpop.pipes.util.Pipeline.next(Pipeline.java:115)
at com.tinkerpop.pipes.transform.PathPipe.processNextStart(PathPipe.java:39)
at com.tinkerpop.pipes.transform.PathPipe.processNextStart(PathPipe.java:20)
at com.tinkerpop.pipes.AbstractPipe.hasNext(AbstractPipe.java:98)
at com.tinkerpop.pipes.util.Pipeline.hasNext(Pipeline.java:105)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.toList(DefaultGroovyMethods.java:1946)
at org.codehaus.groovy.runtime.DefaultGroovyMethods.toList(DefaultGroovyMethods.java:1961)
Comments (1)
-
reporter - Log in to comment
Fixed in 1.1. Link to code changes