[jira] [Commented] (TINKERPOP-1923) Intermittent NegativeArraySizeException on drop
[ https://issues.apache.org/jira/browse/TINKERPOP-1923?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17555119#comment-17555119 ] ASF GitHub Bot commented on TINKERPOP-1923: --- spmallette commented on PR #818: URL: https://github.com/apache/tinkerpop/pull/818#issuecomment-1157764953 even TinkerGraph isn't a good match as it doesn't support multi-request transactions, but perhaps you aren't using those. i'm not sure what else to advise at the moment i'm afraid. > Intermittent NegativeArraySizeException on drop > --- > > Key: TINKERPOP-1923 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1923 > Project: TinkerPop > Issue Type: Bug > Components: tinkergraph >Affects Versions: 3.3.1 >Reporter: James Baker >Priority: Major > > I am intermittently getting the following exception when dropping vertices on > a TinkerGraph: > {noformat} > Exception in thread "main" java.lang.NegativeArraySizeException > at java.util.AbstractCollection.toArray(AbstractCollection.java:136) > at java.util.ArrayList.addAll(ArrayList.java:581) > at java.util.HashMap$Values.forEach(HashMap.java:981) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerHelper.getEdges(TinkerHelper.java:172) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.edges(TinkerVertex.java:146) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.remove(TinkerVertex.java:131) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.DropStep.filter(DropStep.java:67) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:37) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:128) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.Traversal.iterate(Traversal.java:203) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal.iterate(GraphTraversal.java:2664) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal$Admin.iterate(GraphTraversal.java:177) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.iterate(DefaultGraphTraversal.java:48) > at mycode.merge.GraphMerger.mergeVertices(GraphMerger.java:172) > at mycode.merge.GraphMerger.lambda$mergeGraphs$6(GraphMerger.java:78) > at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) > at > java.util.concurrent.ConcurrentHashMap$ValueSpliterator.forEachRemaining(ConcurrentHashMap.java:3566) > at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) > at > java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) > at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) > at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) > at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) > at mycode.merge.GraphMerger.mergeGraphs(GraphMerger.java:79) > at mycode.cli.mapper.MergeGraphFiles.main(MergeGraphFiles.java:117) > {noformat} > My code is as follows (the last line is Line 172, which is where the > exception is thrown): > {code:java} > LOGGER.info("Removing original vertices"); > Object[] ids = mergeGroup.stream().map(Element::id).toArray(); > LOGGER.debug("IDs to remove {}", ids); > if(ids != null && ids.length > 0) > graph.traversal().V(ids).drop().iterate(); > {code} -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Commented] (TINKERPOP-1923) Intermittent NegativeArraySizeException on drop
[ https://issues.apache.org/jira/browse/TINKERPOP-1923?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17555105#comment-17555105 ] ASF GitHub Bot commented on TINKERPOP-1923: --- zhulik commented on PR #818: URL: https://github.com/apache/tinkerpop/pull/818#issuecomment-1157731773 @spmallette well, I've just tests neo4j, bitsy and janusgraph and they don't fit: I need user provided identifiers and I need identifiers to be strings. From I see only Neptune and Tinkergraph have full support of them > Intermittent NegativeArraySizeException on drop > --- > > Key: TINKERPOP-1923 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1923 > Project: TinkerPop > Issue Type: Bug > Components: tinkergraph >Affects Versions: 3.3.1 >Reporter: James Baker >Priority: Major > > I am intermittently getting the following exception when dropping vertices on > a TinkerGraph: > {noformat} > Exception in thread "main" java.lang.NegativeArraySizeException > at java.util.AbstractCollection.toArray(AbstractCollection.java:136) > at java.util.ArrayList.addAll(ArrayList.java:581) > at java.util.HashMap$Values.forEach(HashMap.java:981) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerHelper.getEdges(TinkerHelper.java:172) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.edges(TinkerVertex.java:146) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.remove(TinkerVertex.java:131) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.DropStep.filter(DropStep.java:67) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:37) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:128) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.Traversal.iterate(Traversal.java:203) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal.iterate(GraphTraversal.java:2664) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal$Admin.iterate(GraphTraversal.java:177) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.iterate(DefaultGraphTraversal.java:48) > at mycode.merge.GraphMerger.mergeVertices(GraphMerger.java:172) > at mycode.merge.GraphMerger.lambda$mergeGraphs$6(GraphMerger.java:78) > at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) > at > java.util.concurrent.ConcurrentHashMap$ValueSpliterator.forEachRemaining(ConcurrentHashMap.java:3566) > at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) > at > java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) > at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) > at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) > at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) > at mycode.merge.GraphMerger.mergeGraphs(GraphMerger.java:79) > at mycode.cli.mapper.MergeGraphFiles.main(MergeGraphFiles.java:117) > {noformat} > My code is as follows (the last line is Line 172, which is where the > exception is thrown): > {code:java} > LOGGER.info("Removing original vertices"); > Object[] ids = mergeGroup.stream().map(Element::id).toArray(); > LOGGER.debug("IDs to remove {}", ids); > if(ids != null && ids.length > 0) > graph.traversal().V(ids).drop().iterate(); > {code} -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Commented] (TINKERPOP-1923) Intermittent NegativeArraySizeException on drop
[ https://issues.apache.org/jira/browse/TINKERPOP-1923?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17555036#comment-17555036 ] ASF GitHub Bot commented on TINKERPOP-1923: --- spmallette commented on PR #818: URL: https://github.com/apache/tinkerpop/pull/818#issuecomment-1157569322 @zhulik This appears to be a TinkerGraph problem. If the issue occurs when doing parallel mutations to the graph then that likely expected given how TinkerGraph is designed. It is not really safe for multi-threaded writes (multi-threaded reads should typically not be a problem). I'd recommend that if you use Gremlin Server for testing that you switch from TinkerGraph to something more robust like neo4j, bitsy, janusgraph, etc. - i.e. a graph more suited to handling multi-threading. > Intermittent NegativeArraySizeException on drop > --- > > Key: TINKERPOP-1923 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1923 > Project: TinkerPop > Issue Type: Bug > Components: tinkergraph >Affects Versions: 3.3.1 >Reporter: James Baker >Priority: Major > > I am intermittently getting the following exception when dropping vertices on > a TinkerGraph: > {noformat} > Exception in thread "main" java.lang.NegativeArraySizeException > at java.util.AbstractCollection.toArray(AbstractCollection.java:136) > at java.util.ArrayList.addAll(ArrayList.java:581) > at java.util.HashMap$Values.forEach(HashMap.java:981) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerHelper.getEdges(TinkerHelper.java:172) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.edges(TinkerVertex.java:146) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.remove(TinkerVertex.java:131) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.DropStep.filter(DropStep.java:67) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:37) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:128) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.Traversal.iterate(Traversal.java:203) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal.iterate(GraphTraversal.java:2664) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal$Admin.iterate(GraphTraversal.java:177) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.iterate(DefaultGraphTraversal.java:48) > at mycode.merge.GraphMerger.mergeVertices(GraphMerger.java:172) > at mycode.merge.GraphMerger.lambda$mergeGraphs$6(GraphMerger.java:78) > at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) > at > java.util.concurrent.ConcurrentHashMap$ValueSpliterator.forEachRemaining(ConcurrentHashMap.java:3566) > at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) > at > java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) > at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) > at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) > at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) > at mycode.merge.GraphMerger.mergeGraphs(GraphMerger.java:79) > at mycode.cli.mapper.MergeGraphFiles.main(MergeGraphFiles.java:117) > {noformat} > My code is as follows (the last line is Line 172, which is where the > exception is thrown): > {code:java} > LOGGER.info("Removing original vertices"); > Object[] ids = mergeGroup.stream().map(Element::id).toArray(); > LOGGER.debug("IDs to remove {}", ids); > if(ids != null && ids.length > 0) > graph.traversal().V(ids).drop().iterate(); > {code} -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Commented] (TINKERPOP-1923) Intermittent NegativeArraySizeException on drop
[ https://issues.apache.org/jira/browse/TINKERPOP-1923?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17554175#comment-17554175 ] ASF GitHub Bot commented on TINKERPOP-1923: --- zhulik commented on PR #818: URL: https://github.com/apache/tinkerpop/pull/818#issuecomment-1155381452 ![Screenshot_20220614_174204](https://user-images.githubusercontent.com/287062/173620181-8f21c2bd-f23c-4a5b-8d0b-226b175db229.png) Well, wrapping lines that may cause the issue in a try...catch block fixes the issue :laughing: > Intermittent NegativeArraySizeException on drop > --- > > Key: TINKERPOP-1923 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1923 > Project: TinkerPop > Issue Type: Bug > Components: tinkergraph >Affects Versions: 3.3.1 >Reporter: James Baker >Priority: Major > > I am intermittently getting the following exception when dropping vertices on > a TinkerGraph: > {noformat} > Exception in thread "main" java.lang.NegativeArraySizeException > at java.util.AbstractCollection.toArray(AbstractCollection.java:136) > at java.util.ArrayList.addAll(ArrayList.java:581) > at java.util.HashMap$Values.forEach(HashMap.java:981) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerHelper.getEdges(TinkerHelper.java:172) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.edges(TinkerVertex.java:146) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.remove(TinkerVertex.java:131) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.DropStep.filter(DropStep.java:67) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:37) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:128) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.Traversal.iterate(Traversal.java:203) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal.iterate(GraphTraversal.java:2664) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal$Admin.iterate(GraphTraversal.java:177) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.iterate(DefaultGraphTraversal.java:48) > at mycode.merge.GraphMerger.mergeVertices(GraphMerger.java:172) > at mycode.merge.GraphMerger.lambda$mergeGraphs$6(GraphMerger.java:78) > at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) > at > java.util.concurrent.ConcurrentHashMap$ValueSpliterator.forEachRemaining(ConcurrentHashMap.java:3566) > at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) > at > java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) > at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) > at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) > at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) > at mycode.merge.GraphMerger.mergeGraphs(GraphMerger.java:79) > at mycode.cli.mapper.MergeGraphFiles.main(MergeGraphFiles.java:117) > {noformat} > My code is as follows (the last line is Line 172, which is where the > exception is thrown): > {code:java} > LOGGER.info("Removing original vertices"); > Object[] ids = mergeGroup.stream().map(Element::id).toArray(); > LOGGER.debug("IDs to remove {}", ids); > if(ids != null && ids.length > 0) > graph.traversal().V(ids).drop().iterate(); > {code} -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Commented] (TINKERPOP-1923) Intermittent NegativeArraySizeException on drop
[ https://issues.apache.org/jira/browse/TINKERPOP-1923?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17553703#comment-17553703 ] ASF GitHub Bot commented on TINKERPOP-1923: --- zhulik commented on PR #818: URL: https://github.com/apache/tinkerpop/pull/818#issuecomment-1154148519 I prepared a script that 100% reproduces the issue: https://github.com/zhulik/gremlin_server_error_demo > Intermittent NegativeArraySizeException on drop > --- > > Key: TINKERPOP-1923 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1923 > Project: TinkerPop > Issue Type: Bug > Components: tinkergraph >Affects Versions: 3.3.1 >Reporter: James Baker >Priority: Major > > I am intermittently getting the following exception when dropping vertices on > a TinkerGraph: > {noformat} > Exception in thread "main" java.lang.NegativeArraySizeException > at java.util.AbstractCollection.toArray(AbstractCollection.java:136) > at java.util.ArrayList.addAll(ArrayList.java:581) > at java.util.HashMap$Values.forEach(HashMap.java:981) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerHelper.getEdges(TinkerHelper.java:172) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.edges(TinkerVertex.java:146) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.remove(TinkerVertex.java:131) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.DropStep.filter(DropStep.java:67) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:37) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:128) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.Traversal.iterate(Traversal.java:203) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal.iterate(GraphTraversal.java:2664) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal$Admin.iterate(GraphTraversal.java:177) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.iterate(DefaultGraphTraversal.java:48) > at mycode.merge.GraphMerger.mergeVertices(GraphMerger.java:172) > at mycode.merge.GraphMerger.lambda$mergeGraphs$6(GraphMerger.java:78) > at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) > at > java.util.concurrent.ConcurrentHashMap$ValueSpliterator.forEachRemaining(ConcurrentHashMap.java:3566) > at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) > at > java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) > at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) > at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) > at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) > at mycode.merge.GraphMerger.mergeGraphs(GraphMerger.java:79) > at mycode.cli.mapper.MergeGraphFiles.main(MergeGraphFiles.java:117) > {noformat} > My code is as follows (the last line is Line 172, which is where the > exception is thrown): > {code:java} > LOGGER.info("Removing original vertices"); > Object[] ids = mergeGroup.stream().map(Element::id).toArray(); > LOGGER.debug("IDs to remove {}", ids); > if(ids != null && ids.length > 0) > graph.traversal().V(ids).drop().iterate(); > {code} -- This message was sent by Atlassian Jira (v8.20.7#820007)
[jira] [Commented] (TINKERPOP-1923) Intermittent NegativeArraySizeException on drop
[ https://issues.apache.org/jira/browse/TINKERPOP-1923?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17553640#comment-17553640 ] ASF GitHub Bot commented on TINKERPOP-1923: --- zhulik commented on PR #818: URL: https://github.com/apache/tinkerpop/pull/818#issuecomment-1154054781 The issue is still there and happens very often on 3.5: ``` project-gremlin_server-1 | [WARN] TraversalOpProcessor - Exception processing a Traversal on iteration for request [6564f5d1-73f7-44d5-ad1d-97bb2aadd582]. project-gremlin_server-1 | java.lang.NegativeArraySizeException: -1 project-gremlin_server-1 | at java.base/java.util.AbstractCollection.toArray(AbstractCollection.java:139) project-gremlin_server-1 | at java.base/java.util.ArrayList.addAll(ArrayList.java:702) project-gremlin_server-1 | at java.base/java.util.HashMap$Values.forEach(HashMap.java:977) project-gremlin_server-1 | at org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerHelper.getEdges(TinkerHelper.java:172) project-gremlin_server-1 | at org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.edges(TinkerVertex.java:158) project-gremlin_server-1 | at org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.remove(TinkerVertex.java:143) project-gremlin_server-1 | at org.apache.tinkerpop.gremlin.process.traversal.step.filter.DropStep.filter(DropStep.java:68) project-gremlin_server-1 | at org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:38) project-gremlin_server-1 | at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:150) project-gremlin_server-1 | at org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:55) project-gremlin_server-1 | at org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:37) project-gremlin_server-1 | at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:150) project-gremlin_server-1 | at org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:55) project-gremlin_server-1 | at org.apache.tinkerpop.gremlin.process.traversal.step.map.ScalarMapStep.processNextStart(ScalarMapStep.java:39) project-gremlin_server-1 | at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:150) project-gremlin_server-1 | at org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversal.hasNext(DefaultTraversal.java:226) project-gremlin_server-1 | at org.apache.tinkerpop.gremlin.server.util.TraverserIterator.fillBulker(TraverserIterator.java:69) project-gremlin_server-1 | at org.apache.tinkerpop.gremlin.server.util.TraverserIterator.hasNext(TraverserIterator.java:56) project-gremlin_server-1 | at org.apache.tinkerpop.gremlin.server.op.traversal.TraversalOpProcessor.handleIterator(TraversalOpProcessor.java:302) project-gremlin_server-1 | at org.apache.tinkerpop.gremlin.server.op.traversal.TraversalOpProcessor.lambda$iterateBytecodeTraversal$0(TraversalOpProcessor.java:222) project-gremlin_server-1 | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) project-gremlin_server-1 | at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) project-gremlin_server-1 | at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) project-gremlin_server-1 | at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) project-gremlin_server-1 | at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) project-gremlin_server-1 | at java.base/java.lang.Thread.run(Thread.java:829) ``` I use gremlin-server as a replacement for AWS Neptune locally and on CI. Main use case - create tens of thousands of vertices and nodes(in parallel from multiple processes), run some queries, drop all the data with `g.V().drop()`. The error occurs even if I delete edges with `g.E().drop()` first. After the first error, all queries that drop vertices start returning the same error and do not delete anything, server has to be restarted. From my experience the error occurs more often if I use more parallel processes to import my data. > Intermittent NegativeArraySizeException on drop > --- > > Key: TINKERPOP-1923 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1923 > Project: TinkerPop > Issue Type: Bug > Components: ti
[jira] [Commented] (TINKERPOP-1923) Intermittent NegativeArraySizeException on drop
[ https://issues.apache.org/jira/browse/TINKERPOP-1923?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16452545#comment-16452545 ] ASF GitHub Bot commented on TINKERPOP-1923: --- Github user asfgit closed the pull request at: https://github.com/apache/tinkerpop/pull/818 > Intermittent NegativeArraySizeException on drop > --- > > Key: TINKERPOP-1923 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1923 > Project: TinkerPop > Issue Type: Bug > Components: tinkergraph >Affects Versions: 3.3.1 >Reporter: James Baker >Priority: Major > > I am intermittently getting the following exception when dropping vertices on > a TinkerGraph: > {noformat} > Exception in thread "main" java.lang.NegativeArraySizeException > at java.util.AbstractCollection.toArray(AbstractCollection.java:136) > at java.util.ArrayList.addAll(ArrayList.java:581) > at java.util.HashMap$Values.forEach(HashMap.java:981) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerHelper.getEdges(TinkerHelper.java:172) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.edges(TinkerVertex.java:146) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.remove(TinkerVertex.java:131) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.DropStep.filter(DropStep.java:67) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:37) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:128) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.Traversal.iterate(Traversal.java:203) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal.iterate(GraphTraversal.java:2664) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal$Admin.iterate(GraphTraversal.java:177) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.iterate(DefaultGraphTraversal.java:48) > at mycode.merge.GraphMerger.mergeVertices(GraphMerger.java:172) > at mycode.merge.GraphMerger.lambda$mergeGraphs$6(GraphMerger.java:78) > at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) > at > java.util.concurrent.ConcurrentHashMap$ValueSpliterator.forEachRemaining(ConcurrentHashMap.java:3566) > at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) > at > java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) > at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) > at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) > at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) > at mycode.merge.GraphMerger.mergeGraphs(GraphMerger.java:79) > at mycode.cli.mapper.MergeGraphFiles.main(MergeGraphFiles.java:117) > {noformat} > My code is as follows (the last line is Line 172, which is where the > exception is thrown): > {code:java} > LOGGER.info("Removing original vertices"); > Object[] ids = mergeGroup.stream().map(Element::id).toArray(); > LOGGER.debug("IDs to remove {}", ids); > if(ids != null && ids.length > 0) > graph.traversal().V(ids).drop().iterate(); > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (TINKERPOP-1923) Intermittent NegativeArraySizeException on drop
[ https://issues.apache.org/jira/browse/TINKERPOP-1923?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16452544#comment-16452544 ] ASF GitHub Bot commented on TINKERPOP-1923: --- Github user spmallette commented on the issue: https://github.com/apache/tinkerpop/pull/818 I think I'm going to have to close this because I can't recreate the problem with the current information supplied and I don't want to merge this PR as-is because it seems like it's just making the issue go away without actually addressing the root of the issue. As there is a workaround (i.e. drop the vertex which drops the edges with it) I don't think we have a bad blocker here. If the issue arises in the future and can be recreated, I'd be happy to re-open this. I still feel like there's something multi-threaded at the root of this somehow, but I can't think of how since you've confirmed that you don't have anything like that going on. If the issue does stem from multiple threads modifying some aspect of the TinkerGraph at the same time then this problem isn't an issue as TinkerGraph is not meant to be thread-safe for mutations. > Intermittent NegativeArraySizeException on drop > --- > > Key: TINKERPOP-1923 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1923 > Project: TinkerPop > Issue Type: Bug > Components: tinkergraph >Affects Versions: 3.3.1 >Reporter: James Baker >Priority: Major > > I am intermittently getting the following exception when dropping vertices on > a TinkerGraph: > {noformat} > Exception in thread "main" java.lang.NegativeArraySizeException > at java.util.AbstractCollection.toArray(AbstractCollection.java:136) > at java.util.ArrayList.addAll(ArrayList.java:581) > at java.util.HashMap$Values.forEach(HashMap.java:981) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerHelper.getEdges(TinkerHelper.java:172) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.edges(TinkerVertex.java:146) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.remove(TinkerVertex.java:131) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.DropStep.filter(DropStep.java:67) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:37) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:128) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.Traversal.iterate(Traversal.java:203) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal.iterate(GraphTraversal.java:2664) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal$Admin.iterate(GraphTraversal.java:177) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.iterate(DefaultGraphTraversal.java:48) > at mycode.merge.GraphMerger.mergeVertices(GraphMerger.java:172) > at mycode.merge.GraphMerger.lambda$mergeGraphs$6(GraphMerger.java:78) > at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) > at > java.util.concurrent.ConcurrentHashMap$ValueSpliterator.forEachRemaining(ConcurrentHashMap.java:3566) > at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) > at > java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) > at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) > at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) > at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) > at mycode.merge.GraphMerger.mergeGraphs(GraphMerger.java:79) > at mycode.cli.mapper.MergeGraphFiles.main(MergeGraphFiles.java:117) > {noformat} > My code is as follows (the last line is Line 172, which is where the > exception is thrown): > {code:java} > LOGGER.info("Removing original vertices"); > Object[] ids = mergeGroup.stream().map(Element::id).toArray(); > LOGGER.debug("IDs to remove {}", ids); > if(ids != null && ids.length > 0) > graph.traversal().V(ids).drop().iterate(); > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (TINKERPOP-1923) Intermittent NegativeArraySizeException on drop
[ https://issues.apache.org/jira/browse/TINKERPOP-1923?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16409673#comment-16409673 ] ASF GitHub Bot commented on TINKERPOP-1923: --- Github user jbaker-nca commented on the issue: https://github.com/apache/tinkerpop/pull/818 The copying code is as follows (I've simplified a little to make it clearer what's happening, as it's actually part of a bigger chunk code): List newEdges = new ArrayList<>(); //Copy edges from orig onto onto v for (Edge eOrig : graph.traversal().V(orig.id()).inE().toSet()) { if (newEdges.contains(eOrig)) continue; LOGGER.debug("Copying IN edge {}, from {}", eOrig.id(), eOrig.outVertex().id()); Vertex vOut = eOrig.outVertex(); Edge e = vOut.addEdge(eOrig.label(), v); ElementUtils.copyProperties(eOrig, e); LOGGER.debug("Recording new edge {}", eOrig.id()); newEdges.add(e); } for (Edge eOrig : graph.traversal().V(orig.id()).outE().toSet()) { if (newEdges.contains(eOrig)) continue; LOGGER.debug("Copying OUT edge {}, to {}", eOrig.id(), eOrig.inVertex().id()); Vertex vIn = eOrig.inVertex(); Edge e = v.addEdge(eOrig.label(), vIn); ElementUtils.copyProperties(eOrig, e); LOGGER.debug("Recording new edge {}", eOrig.id()); newEdges.add(e); } LOGGER.debug("{} edges copied", newEdges.size()); > Intermittent NegativeArraySizeException on drop > --- > > Key: TINKERPOP-1923 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1923 > Project: TinkerPop > Issue Type: Bug > Components: tinkergraph >Affects Versions: 3.3.1 >Reporter: James Baker >Priority: Major > > I am intermittently getting the following exception when dropping vertices on > a TinkerGraph: > {noformat} > Exception in thread "main" java.lang.NegativeArraySizeException > at java.util.AbstractCollection.toArray(AbstractCollection.java:136) > at java.util.ArrayList.addAll(ArrayList.java:581) > at java.util.HashMap$Values.forEach(HashMap.java:981) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerHelper.getEdges(TinkerHelper.java:172) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.edges(TinkerVertex.java:146) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.remove(TinkerVertex.java:131) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.DropStep.filter(DropStep.java:67) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:37) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:128) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.Traversal.iterate(Traversal.java:203) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal.iterate(GraphTraversal.java:2664) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal$Admin.iterate(GraphTraversal.java:177) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.iterate(DefaultGraphTraversal.java:48) > at mycode.merge.GraphMerger.mergeVertices(GraphMerger.java:172) > at mycode.merge.GraphMerger.lambda$mergeGraphs$6(GraphMerger.java:78) > at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) > at > java.util.concurrent.ConcurrentHashMap$ValueSpliterator.forEachRemaining(ConcurrentHashMap.java:3566) > at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) > at > java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) > at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) > at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) > at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) > at mycode.merge.GraphMerger.mergeGraphs(GraphMerger.java:79) > at mycode.cli.mapper.MergeGraphFiles.main(MergeGraphFiles.
[jira] [Commented] (TINKERPOP-1923) Intermittent NegativeArraySizeException on drop
[ https://issues.apache.org/jira/browse/TINKERPOP-1923?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16409631#comment-16409631 ] ASF GitHub Bot commented on TINKERPOP-1923: --- Github user spmallette commented on the issue: https://github.com/apache/tinkerpop/pull/818 @rcaunt how did you do this part: > copy the edges from the original vertex to a new one > Intermittent NegativeArraySizeException on drop > --- > > Key: TINKERPOP-1923 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1923 > Project: TinkerPop > Issue Type: Bug > Components: tinkergraph >Affects Versions: 3.3.1 >Reporter: James Baker >Priority: Major > > I am intermittently getting the following exception when dropping vertices on > a TinkerGraph: > {noformat} > Exception in thread "main" java.lang.NegativeArraySizeException > at java.util.AbstractCollection.toArray(AbstractCollection.java:136) > at java.util.ArrayList.addAll(ArrayList.java:581) > at java.util.HashMap$Values.forEach(HashMap.java:981) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerHelper.getEdges(TinkerHelper.java:172) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.edges(TinkerVertex.java:146) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.remove(TinkerVertex.java:131) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.DropStep.filter(DropStep.java:67) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:37) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:128) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.Traversal.iterate(Traversal.java:203) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal.iterate(GraphTraversal.java:2664) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal$Admin.iterate(GraphTraversal.java:177) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.iterate(DefaultGraphTraversal.java:48) > at mycode.merge.GraphMerger.mergeVertices(GraphMerger.java:172) > at mycode.merge.GraphMerger.lambda$mergeGraphs$6(GraphMerger.java:78) > at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) > at > java.util.concurrent.ConcurrentHashMap$ValueSpliterator.forEachRemaining(ConcurrentHashMap.java:3566) > at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) > at > java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) > at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) > at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) > at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) > at mycode.merge.GraphMerger.mergeGraphs(GraphMerger.java:79) > at mycode.cli.mapper.MergeGraphFiles.main(MergeGraphFiles.java:117) > {noformat} > My code is as follows (the last line is Line 172, which is where the > exception is thrown): > {code:java} > LOGGER.info("Removing original vertices"); > Object[] ids = mergeGroup.stream().map(Element::id).toArray(); > LOGGER.debug("IDs to remove {}", ids); > if(ids != null && ids.length > 0) > graph.traversal().V(ids).drop().iterate(); > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (TINKERPOP-1923) Intermittent NegativeArraySizeException on drop
[ https://issues.apache.org/jira/browse/TINKERPOP-1923?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16409345#comment-16409345 ] ASF GitHub Bot commented on TINKERPOP-1923: --- Github user rcaunt commented on the issue: https://github.com/apache/tinkerpop/pull/818 @spmallette I've been working with @jbaker-nca to understand this issue a bit more. Our use case for discovering this bug was essentially merging two separate graphs into a single graph. When two vertices are to be merged we copy the edges from the original vertex to a new one and then proceed to remove the edges on that vertex using the following: ``` java Object[] edgeIdsArr = edgeIds.toArray(); if(edgeIdsArr.length > 0) graph.traversal().E(edgeIdsArr).drop().iterate(); ``` Once the vertices are merged we then remove the original vertices from the graph: ``` java Object[] ids = mergeGroup.stream().map(Element::id).filter(Objects::nonNull).toArray(); if(ids != null && ids.length > 0) graph.traversal().V(ids).drop().iterate(); ``` This second traversal on vertex removal is where the error would occur yielding the following exception: ``` Exception in thread "main" java.lang.NegativeArraySizeException at java.util.AbstractCollection.toArray(Unknown Source) at java.util.ArrayList.addAll(Unknown Source) at java.lang.Iterable.forEach(Unknown Source) at org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerHelper.getEdges(TinkerHelper.java:173) at org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.edges(TinkerVertex.java:146) at org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.remove(TinkerVertex.java:131) at org.apache.tinkerpop.gremlin.process.traversal.step.filter.DropStep.filter(DropStep.java:67) at org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:38) at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:128) at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:38) at org.apache.tinkerpop.gremlin.process.traversal.Traversal.iterate(Traversal.java:198) at org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal.iterate(GraphTraversal.java:2677) at org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal$Admin.iterate(GraphTraversal.java:176) at org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.iterate(DefaultGraphTraversal.java:48) ``` I noticed the following Google Groups post - https://groups.google.com/forum/#!topic/gremlin-users/CGkuoBkNMGI - which indicates that when removing a vertex the edges should be removed at the same time. Therefore I modified our code to no longer remove the edges and only remove the vertices. This appears to have fixed our issue and we have reverted back to Tinkerpop 3.3.1 without any further issues. However, I suspect that one should be able to remove edges and then vertices without encountering the issue. > Intermittent NegativeArraySizeException on drop > --- > > Key: TINKERPOP-1923 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1923 > Project: TinkerPop > Issue Type: Bug > Components: tinkergraph >Affects Versions: 3.3.1 >Reporter: James Baker >Priority: Major > > I am intermittently getting the following exception when dropping vertices on > a TinkerGraph: > {noformat} > Exception in thread "main" java.lang.NegativeArraySizeException > at java.util.AbstractCollection.toArray(AbstractCollection.java:136) > at java.util.ArrayList.addAll(ArrayList.java:581) > at java.util.HashMap$Values.forEach(HashMap.java:981) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerHelper.getEdges(TinkerHelper.java:172) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.edges(TinkerVertex.java:146) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.remove(TinkerVertex.java:131) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.DropStep.filter(DropStep.java:67) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.
[jira] [Commented] (TINKERPOP-1923) Intermittent NegativeArraySizeException on drop
[ https://issues.apache.org/jira/browse/TINKERPOP-1923?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16409263#comment-16409263 ] James Baker commented on TINKERPOP-1923: In other places in my code, yes - but I'm not threading at the point where this issue is being thrown (unless something is threading it behind the scenes without me knowing!). > Intermittent NegativeArraySizeException on drop > --- > > Key: TINKERPOP-1923 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1923 > Project: TinkerPop > Issue Type: Bug > Components: tinkergraph >Affects Versions: 3.3.1 >Reporter: James Baker >Priority: Major > > I am intermittently getting the following exception when dropping vertices on > a TinkerGraph: > {noformat} > Exception in thread "main" java.lang.NegativeArraySizeException > at java.util.AbstractCollection.toArray(AbstractCollection.java:136) > at java.util.ArrayList.addAll(ArrayList.java:581) > at java.util.HashMap$Values.forEach(HashMap.java:981) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerHelper.getEdges(TinkerHelper.java:172) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.edges(TinkerVertex.java:146) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.remove(TinkerVertex.java:131) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.DropStep.filter(DropStep.java:67) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:37) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:128) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.Traversal.iterate(Traversal.java:203) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal.iterate(GraphTraversal.java:2664) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal$Admin.iterate(GraphTraversal.java:177) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.iterate(DefaultGraphTraversal.java:48) > at mycode.merge.GraphMerger.mergeVertices(GraphMerger.java:172) > at mycode.merge.GraphMerger.lambda$mergeGraphs$6(GraphMerger.java:78) > at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) > at > java.util.concurrent.ConcurrentHashMap$ValueSpliterator.forEachRemaining(ConcurrentHashMap.java:3566) > at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) > at > java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) > at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) > at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) > at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) > at mycode.merge.GraphMerger.mergeGraphs(GraphMerger.java:79) > at mycode.cli.mapper.MergeGraphFiles.main(MergeGraphFiles.java:117) > {noformat} > My code is as follows (the last line is Line 172, which is where the > exception is thrown): > {code:java} > LOGGER.info("Removing original vertices"); > Object[] ids = mergeGroup.stream().map(Element::id).toArray(); > LOGGER.debug("IDs to remove {}", ids); > if(ids != null && ids.length > 0) > graph.traversal().V(ids).drop().iterate(); > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (TINKERPOP-1923) Intermittent NegativeArraySizeException on drop
[ https://issues.apache.org/jira/browse/TINKERPOP-1923?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16408099#comment-16408099 ] stephen mallette commented on TINKERPOP-1923: - [~james.d.baker] is there any chance you are modifying this TinkerGraph from multiple threads? I can't seem to think of how else this problem would pop up? Is there anything else to your code that might be relevant? > Intermittent NegativeArraySizeException on drop > --- > > Key: TINKERPOP-1923 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1923 > Project: TinkerPop > Issue Type: Bug > Components: tinkergraph >Affects Versions: 3.3.1 >Reporter: James Baker >Priority: Major > > I am intermittently getting the following exception when dropping vertices on > a TinkerGraph: > {noformat} > Exception in thread "main" java.lang.NegativeArraySizeException > at java.util.AbstractCollection.toArray(AbstractCollection.java:136) > at java.util.ArrayList.addAll(ArrayList.java:581) > at java.util.HashMap$Values.forEach(HashMap.java:981) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerHelper.getEdges(TinkerHelper.java:172) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.edges(TinkerVertex.java:146) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.remove(TinkerVertex.java:131) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.DropStep.filter(DropStep.java:67) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:37) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:128) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.Traversal.iterate(Traversal.java:203) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal.iterate(GraphTraversal.java:2664) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal$Admin.iterate(GraphTraversal.java:177) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.iterate(DefaultGraphTraversal.java:48) > at mycode.merge.GraphMerger.mergeVertices(GraphMerger.java:172) > at mycode.merge.GraphMerger.lambda$mergeGraphs$6(GraphMerger.java:78) > at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) > at > java.util.concurrent.ConcurrentHashMap$ValueSpliterator.forEachRemaining(ConcurrentHashMap.java:3566) > at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) > at > java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) > at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) > at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) > at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) > at mycode.merge.GraphMerger.mergeGraphs(GraphMerger.java:79) > at mycode.cli.mapper.MergeGraphFiles.main(MergeGraphFiles.java:117) > {noformat} > My code is as follows (the last line is Line 172, which is where the > exception is thrown): > {code:java} > LOGGER.info("Removing original vertices"); > Object[] ids = mergeGroup.stream().map(Element::id).toArray(); > LOGGER.debug("IDs to remove {}", ids); > if(ids != null && ids.length > 0) > graph.traversal().V(ids).drop().iterate(); > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (TINKERPOP-1923) Intermittent NegativeArraySizeException on drop
[ https://issues.apache.org/jira/browse/TINKERPOP-1923?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16401792#comment-16401792 ] ASF GitHub Bot commented on TINKERPOP-1923: --- Github user spmallette commented on the issue: https://github.com/apache/tinkerpop/pull/818 > when removing nodes and/or edges, the collection of edges on a vertex can end up containing null values right, i think i followed that part - i was asking more about the "why" nulls were showing up in the first place, but it sounds like you hadn't gotten that far (not a problem - i understand that you're new to the code base). I think we need to sort out the "why" before we merge a "fix" or else that fix might not be the right one. > Intermittent NegativeArraySizeException on drop > --- > > Key: TINKERPOP-1923 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1923 > Project: TinkerPop > Issue Type: Bug > Components: tinkergraph >Affects Versions: 3.3.1 >Reporter: James Baker >Priority: Major > > I am intermittently getting the following exception when dropping vertices on > a TinkerGraph: > {noformat} > Exception in thread "main" java.lang.NegativeArraySizeException > at java.util.AbstractCollection.toArray(AbstractCollection.java:136) > at java.util.ArrayList.addAll(ArrayList.java:581) > at java.util.HashMap$Values.forEach(HashMap.java:981) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerHelper.getEdges(TinkerHelper.java:172) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.edges(TinkerVertex.java:146) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.remove(TinkerVertex.java:131) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.DropStep.filter(DropStep.java:67) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:37) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:128) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.Traversal.iterate(Traversal.java:203) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal.iterate(GraphTraversal.java:2664) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal$Admin.iterate(GraphTraversal.java:177) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.iterate(DefaultGraphTraversal.java:48) > at mycode.merge.GraphMerger.mergeVertices(GraphMerger.java:172) > at mycode.merge.GraphMerger.lambda$mergeGraphs$6(GraphMerger.java:78) > at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) > at > java.util.concurrent.ConcurrentHashMap$ValueSpliterator.forEachRemaining(ConcurrentHashMap.java:3566) > at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) > at > java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) > at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) > at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) > at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) > at mycode.merge.GraphMerger.mergeGraphs(GraphMerger.java:79) > at mycode.cli.mapper.MergeGraphFiles.main(MergeGraphFiles.java:117) > {noformat} > My code is as follows (the last line is Line 172, which is where the > exception is thrown): > {code:java} > LOGGER.info("Removing original vertices"); > Object[] ids = mergeGroup.stream().map(Element::id).toArray(); > LOGGER.debug("IDs to remove {}", ids); > if(ids != null && ids.length > 0) > graph.traversal().V(ids).drop().iterate(); > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (TINKERPOP-1923) Intermittent NegativeArraySizeException on drop
[ https://issues.apache.org/jira/browse/TINKERPOP-1923?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16401767#comment-16401767 ] ASF GitHub Bot commented on TINKERPOP-1923: --- Github user robertdale commented on the issue: https://github.com/apache/tinkerpop/pull/818 @jbaker-nca Is there a test case that would fail without this fix so it can catch regressions? > Intermittent NegativeArraySizeException on drop > --- > > Key: TINKERPOP-1923 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1923 > Project: TinkerPop > Issue Type: Bug > Components: tinkergraph >Affects Versions: 3.3.1 >Reporter: James Baker >Priority: Major > > I am intermittently getting the following exception when dropping vertices on > a TinkerGraph: > {noformat} > Exception in thread "main" java.lang.NegativeArraySizeException > at java.util.AbstractCollection.toArray(AbstractCollection.java:136) > at java.util.ArrayList.addAll(ArrayList.java:581) > at java.util.HashMap$Values.forEach(HashMap.java:981) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerHelper.getEdges(TinkerHelper.java:172) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.edges(TinkerVertex.java:146) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.remove(TinkerVertex.java:131) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.DropStep.filter(DropStep.java:67) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:37) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:128) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.Traversal.iterate(Traversal.java:203) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal.iterate(GraphTraversal.java:2664) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal$Admin.iterate(GraphTraversal.java:177) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.iterate(DefaultGraphTraversal.java:48) > at mycode.merge.GraphMerger.mergeVertices(GraphMerger.java:172) > at mycode.merge.GraphMerger.lambda$mergeGraphs$6(GraphMerger.java:78) > at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) > at > java.util.concurrent.ConcurrentHashMap$ValueSpliterator.forEachRemaining(ConcurrentHashMap.java:3566) > at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) > at > java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) > at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) > at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) > at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) > at mycode.merge.GraphMerger.mergeGraphs(GraphMerger.java:79) > at mycode.cli.mapper.MergeGraphFiles.main(MergeGraphFiles.java:117) > {noformat} > My code is as follows (the last line is Line 172, which is where the > exception is thrown): > {code:java} > LOGGER.info("Removing original vertices"); > Object[] ids = mergeGroup.stream().map(Element::id).toArray(); > LOGGER.debug("IDs to remove {}", ids); > if(ids != null && ids.length > 0) > graph.traversal().V(ids).drop().iterate(); > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (TINKERPOP-1923) Intermittent NegativeArraySizeException on drop
[ https://issues.apache.org/jira/browse/TINKERPOP-1923?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16401757#comment-16401757 ] ASF GitHub Bot commented on TINKERPOP-1923: --- Github user jbaker-nca commented on the issue: https://github.com/apache/tinkerpop/pull/818 Hi @spmallette, I've made the changes requested. My understanding is that in some cases, when removing nodes and/or edges, the collection of edges on a vertex can end up containing null values (I believe they should be properly removed rather than replaced with nulls, but my knowledge of the Tinkerpop codebase is very limited so I wasn't sure why this would be happening). These null values were causing issues when looping across the collection, which was resulting in the exception thrown. > Intermittent NegativeArraySizeException on drop > --- > > Key: TINKERPOP-1923 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1923 > Project: TinkerPop > Issue Type: Bug > Components: tinkergraph >Affects Versions: 3.3.1 >Reporter: James Baker >Priority: Major > > I am intermittently getting the following exception when dropping vertices on > a TinkerGraph: > {noformat} > Exception in thread "main" java.lang.NegativeArraySizeException > at java.util.AbstractCollection.toArray(AbstractCollection.java:136) > at java.util.ArrayList.addAll(ArrayList.java:581) > at java.util.HashMap$Values.forEach(HashMap.java:981) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerHelper.getEdges(TinkerHelper.java:172) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.edges(TinkerVertex.java:146) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.remove(TinkerVertex.java:131) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.DropStep.filter(DropStep.java:67) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:37) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:128) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.Traversal.iterate(Traversal.java:203) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal.iterate(GraphTraversal.java:2664) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal$Admin.iterate(GraphTraversal.java:177) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.iterate(DefaultGraphTraversal.java:48) > at mycode.merge.GraphMerger.mergeVertices(GraphMerger.java:172) > at mycode.merge.GraphMerger.lambda$mergeGraphs$6(GraphMerger.java:78) > at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) > at > java.util.concurrent.ConcurrentHashMap$ValueSpliterator.forEachRemaining(ConcurrentHashMap.java:3566) > at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) > at > java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) > at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) > at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) > at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) > at mycode.merge.GraphMerger.mergeGraphs(GraphMerger.java:79) > at mycode.cli.mapper.MergeGraphFiles.main(MergeGraphFiles.java:117) > {noformat} > My code is as follows (the last line is Line 172, which is where the > exception is thrown): > {code:java} > LOGGER.info("Removing original vertices"); > Object[] ids = mergeGroup.stream().map(Element::id).toArray(); > LOGGER.debug("IDs to remove {}", ids); > if(ids != null && ids.length > 0) > graph.traversal().V(ids).drop().iterate(); > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (TINKERPOP-1923) Intermittent NegativeArraySizeException on drop
[ https://issues.apache.org/jira/browse/TINKERPOP-1923?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16401744#comment-16401744 ] ASF GitHub Bot commented on TINKERPOP-1923: --- Github user spmallette commented on the issue: https://github.com/apache/tinkerpop/pull/818 Thanks for looking into this issue. I saw your issue in JIRA and your SO question, but just haven't had a chance to really dig into it. I can see how your solution would get rid of the `NullPointerException`, but do you understand the root cause of why this happens in the first place? Could you perhaps add your reasoning as to why this is the right fix in that context in the description of this pull request? Also, if this is the right fix, could you get rid of the use of `stream()` in favor of TinkerPop's `IteratorUtils.filter()` - we've found `stream()` to sadly be far less performant. Finally, could you please retarget this PR to the tp32 branch as I think this fix should be applied across all currently maintained versions? Note that we have a release coming in the next two weeks so this PR arrived just in time - thanks again. > Intermittent NegativeArraySizeException on drop > --- > > Key: TINKERPOP-1923 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1923 > Project: TinkerPop > Issue Type: Bug > Components: tinkergraph >Affects Versions: 3.3.1 >Reporter: James Baker >Priority: Major > > I am intermittently getting the following exception when dropping vertices on > a TinkerGraph: > {noformat} > Exception in thread "main" java.lang.NegativeArraySizeException > at java.util.AbstractCollection.toArray(AbstractCollection.java:136) > at java.util.ArrayList.addAll(ArrayList.java:581) > at java.util.HashMap$Values.forEach(HashMap.java:981) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerHelper.getEdges(TinkerHelper.java:172) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.edges(TinkerVertex.java:146) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.remove(TinkerVertex.java:131) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.DropStep.filter(DropStep.java:67) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:37) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:128) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.Traversal.iterate(Traversal.java:203) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal.iterate(GraphTraversal.java:2664) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal$Admin.iterate(GraphTraversal.java:177) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.iterate(DefaultGraphTraversal.java:48) > at mycode.merge.GraphMerger.mergeVertices(GraphMerger.java:172) > at mycode.merge.GraphMerger.lambda$mergeGraphs$6(GraphMerger.java:78) > at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) > at > java.util.concurrent.ConcurrentHashMap$ValueSpliterator.forEachRemaining(ConcurrentHashMap.java:3566) > at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) > at > java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) > at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) > at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) > at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) > at mycode.merge.GraphMerger.mergeGraphs(GraphMerger.java:79) > at mycode.cli.mapper.MergeGraphFiles.main(MergeGraphFiles.java:117) > {noformat} > My code is as follows (the last line is Line 172, which is where the > exception is thrown): > {code:java} > LOGGER.info("Removing original vertices"); > Object[] ids = mergeGroup.stream().map(Element::id).toArray(); > LOGGER.debug("IDs to remove {}", ids); > if(ids != null && ids.length > 0) > graph.traversal().V(ids).drop().iterate(); > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (TINKERPOP-1923) Intermittent NegativeArraySizeException on drop
[ https://issues.apache.org/jira/browse/TINKERPOP-1923?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16401620#comment-16401620 ] ASF GitHub Bot commented on TINKERPOP-1923: --- GitHub user jbaker-nca opened a pull request: https://github.com/apache/tinkerpop/pull/818 Remove null values to fix TINKERPOP-1923 You can merge this pull request into a Git repository by running: $ git pull https://github.com/jbaker-nca/tinkerpop TINKERPOP-1923 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/tinkerpop/pull/818.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #818 commit 87e5104b060c53cf7365dafbe29b2024585c2c21 Author: James Baker Date: 2018-03-15T10:23:35Z Remove null values to fix TINKERPOP-1923 > Intermittent NegativeArraySizeException on drop > --- > > Key: TINKERPOP-1923 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1923 > Project: TinkerPop > Issue Type: Bug > Components: tinkergraph >Affects Versions: 3.3.1 >Reporter: James Baker >Priority: Major > > I am intermittently getting the following exception when dropping vertices on > a TinkerGraph: > {noformat} > Exception in thread "main" java.lang.NegativeArraySizeException > at java.util.AbstractCollection.toArray(AbstractCollection.java:136) > at java.util.ArrayList.addAll(ArrayList.java:581) > at java.util.HashMap$Values.forEach(HashMap.java:981) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerHelper.getEdges(TinkerHelper.java:172) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.edges(TinkerVertex.java:146) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.remove(TinkerVertex.java:131) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.DropStep.filter(DropStep.java:67) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:37) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:128) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.Traversal.iterate(Traversal.java:203) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal.iterate(GraphTraversal.java:2664) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal$Admin.iterate(GraphTraversal.java:177) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.iterate(DefaultGraphTraversal.java:48) > at mycode.merge.GraphMerger.mergeVertices(GraphMerger.java:172) > at mycode.merge.GraphMerger.lambda$mergeGraphs$6(GraphMerger.java:78) > at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) > at > java.util.concurrent.ConcurrentHashMap$ValueSpliterator.forEachRemaining(ConcurrentHashMap.java:3566) > at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) > at > java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) > at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) > at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) > at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) > at mycode.merge.GraphMerger.mergeGraphs(GraphMerger.java:79) > at mycode.cli.mapper.MergeGraphFiles.main(MergeGraphFiles.java:117) > {noformat} > My code is as follows (the last line is Line 172, which is where the > exception is thrown): > {code:java} > LOGGER.info("Removing original vertices"); > Object[] ids = mergeGroup.stream().map(Element::id).toArray(); > LOGGER.debug("IDs to remove {}", ids); > if(ids != null && ids.length > 0) > graph.traversal().V(ids).drop().iterate(); > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (TINKERPOP-1923) Intermittent NegativeArraySizeException on drop
[ https://issues.apache.org/jira/browse/TINKERPOP-1923?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16398297#comment-16398297 ] James Baker commented on TINKERPOP-1923: I take that back, I've just observed it happening in Oracle Java 9 as well (although on a different set of data - the data that was failing under OpenJDK 1.8 worked on Java 9). > Intermittent NegativeArraySizeException on drop > --- > > Key: TINKERPOP-1923 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1923 > Project: TinkerPop > Issue Type: Bug > Components: tinkergraph >Affects Versions: 3.3.1 >Reporter: James Baker >Priority: Major > > I am intermittently getting the following exception when dropping vertices on > a TinkerGraph: > {noformat} > Exception in thread "main" java.lang.NegativeArraySizeException > at java.util.AbstractCollection.toArray(AbstractCollection.java:136) > at java.util.ArrayList.addAll(ArrayList.java:581) > at java.util.HashMap$Values.forEach(HashMap.java:981) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerHelper.getEdges(TinkerHelper.java:172) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.edges(TinkerVertex.java:146) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.remove(TinkerVertex.java:131) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.DropStep.filter(DropStep.java:67) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:37) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:128) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.Traversal.iterate(Traversal.java:203) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal.iterate(GraphTraversal.java:2664) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal$Admin.iterate(GraphTraversal.java:177) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.iterate(DefaultGraphTraversal.java:48) > at mycode.merge.GraphMerger.mergeVertices(GraphMerger.java:172) > at mycode.merge.GraphMerger.lambda$mergeGraphs$6(GraphMerger.java:78) > at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) > at > java.util.concurrent.ConcurrentHashMap$ValueSpliterator.forEachRemaining(ConcurrentHashMap.java:3566) > at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) > at > java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) > at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) > at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) > at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) > at mycode.merge.GraphMerger.mergeGraphs(GraphMerger.java:79) > at mycode.cli.mapper.MergeGraphFiles.main(MergeGraphFiles.java:117) > {noformat} > My code is as follows (the last line is Line 172, which is where the > exception is thrown): > {code:java} > LOGGER.info("Removing original vertices"); > Object[] ids = mergeGroup.stream().map(Element::id).toArray(); > LOGGER.debug("IDs to remove {}", ids); > if(ids != null && ids.length > 0) > graph.traversal().V(ids).drop().iterate(); > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (TINKERPOP-1923) Intermittent NegativeArraySizeException on drop
[ https://issues.apache.org/jira/browse/TINKERPOP-1923?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16398272#comment-16398272 ] James Baker commented on TINKERPOP-1923: This could be a OpenJDK bug. It happens in OpenJDK 1.8, but not in Oracle Java 9. > Intermittent NegativeArraySizeException on drop > --- > > Key: TINKERPOP-1923 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1923 > Project: TinkerPop > Issue Type: Bug > Components: tinkergraph >Affects Versions: 3.3.1 >Reporter: James Baker >Priority: Major > > I am intermittently getting the following exception when dropping vertices on > a TinkerGraph: > {noformat} > Exception in thread "main" java.lang.NegativeArraySizeException > at java.util.AbstractCollection.toArray(AbstractCollection.java:136) > at java.util.ArrayList.addAll(ArrayList.java:581) > at java.util.HashMap$Values.forEach(HashMap.java:981) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerHelper.getEdges(TinkerHelper.java:172) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.edges(TinkerVertex.java:146) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.remove(TinkerVertex.java:131) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.DropStep.filter(DropStep.java:67) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:37) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:128) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.Traversal.iterate(Traversal.java:203) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal.iterate(GraphTraversal.java:2664) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal$Admin.iterate(GraphTraversal.java:177) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.iterate(DefaultGraphTraversal.java:48) > at mycode.merge.GraphMerger.mergeVertices(GraphMerger.java:172) > at mycode.merge.GraphMerger.lambda$mergeGraphs$6(GraphMerger.java:78) > at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) > at > java.util.concurrent.ConcurrentHashMap$ValueSpliterator.forEachRemaining(ConcurrentHashMap.java:3566) > at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) > at > java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) > at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) > at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) > at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) > at mycode.merge.GraphMerger.mergeGraphs(GraphMerger.java:79) > at mycode.cli.mapper.MergeGraphFiles.main(MergeGraphFiles.java:117) > {noformat} > My code is as follows (the last line is Line 172, which is where the > exception is thrown): > {code:java} > LOGGER.info("Removing original vertices"); > Object[] ids = mergeGroup.stream().map(Element::id).toArray(); > LOGGER.debug("IDs to remove {}", ids); > if(ids != null && ids.length > 0) > graph.traversal().V(ids).drop().iterate(); > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (TINKERPOP-1923) Intermittent NegativeArraySizeException on drop
[ https://issues.apache.org/jira/browse/TINKERPOP-1923?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16397105#comment-16397105 ] James Baker commented on TINKERPOP-1923: So this might be a combination of a Java 9 and TinkerGraph problem. If I compile with Java 8, it seems more robust. Looking in the logs, it seems to be printing the "Removing original vertices" message twice (it shouldn't, there is nothing in the code that should cause that to happen) - so that could be some strange Java 9 compiler bug. Presumably if the log message is being called twice, the drop command could be called twice too. If the Gremlin query was called twice, would you expect to see the error above? > Intermittent NegativeArraySizeException on drop > --- > > Key: TINKERPOP-1923 > URL: https://issues.apache.org/jira/browse/TINKERPOP-1923 > Project: TinkerPop > Issue Type: Bug > Components: tinkergraph >Affects Versions: 3.3.1 >Reporter: James Baker >Priority: Major > > I am intermittently getting the following exception when dropping vertices on > a TinkerGraph: > {noformat} > Exception in thread "main" java.lang.NegativeArraySizeException > at java.util.AbstractCollection.toArray(AbstractCollection.java:136) > at java.util.ArrayList.addAll(ArrayList.java:581) > at java.util.HashMap$Values.forEach(HashMap.java:981) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerHelper.getEdges(TinkerHelper.java:172) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.edges(TinkerVertex.java:146) > at > org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerVertex.remove(TinkerVertex.java:131) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.DropStep.filter(DropStep.java:67) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:143) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.ExpandableStepIterator.next(ExpandableStepIterator.java:50) > at > org.apache.tinkerpop.gremlin.process.traversal.step.filter.FilterStep.processNextStart(FilterStep.java:37) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:128) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:38) > at > org.apache.tinkerpop.gremlin.process.traversal.Traversal.iterate(Traversal.java:203) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal.iterate(GraphTraversal.java:2664) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal$Admin.iterate(GraphTraversal.java:177) > at > org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.iterate(DefaultGraphTraversal.java:48) > at mycode.merge.GraphMerger.mergeVertices(GraphMerger.java:172) > at mycode.merge.GraphMerger.lambda$mergeGraphs$6(GraphMerger.java:78) > at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) > at > java.util.concurrent.ConcurrentHashMap$ValueSpliterator.forEachRemaining(ConcurrentHashMap.java:3566) > at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481) > at > java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471) > at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708) > at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) > at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:499) > at mycode.merge.GraphMerger.mergeGraphs(GraphMerger.java:79) > at mycode.cli.mapper.MergeGraphFiles.main(MergeGraphFiles.java:117) > {noformat} > My code is as follows (the last line is Line 172, which is where the > exception is thrown): > {code:java} > LOGGER.info("Removing original vertices"); > Object[] ids = mergeGroup.stream().map(Element::id).toArray(); > LOGGER.debug("IDs to remove {}", ids); > if(ids != null && ids.length > 0) > graph.traversal().V(ids).drop().iterate(); > {code} -- This message was sent by Atlassian JIRA (v7.6.3#76005)