[ https://issues.apache.org/jira/browse/TINKERPOP-2837?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17687095#comment-17687095 ]
ASF GitHub Bot commented on TINKERPOP-2837: ------------------------------------------- spmallette commented on PR #1908: URL: https://github.com/apache/tinkerpop/pull/1908#issuecomment-1425880289 looking at this further reveals that annotations will lose their order. i assume providers inserting annotations would want to preserve the order they insert things as it may make a difference in presentation to the user. note that a test fails in 3.6-dev that isn't here on 3.5-dev as a result of this change. i think we'd want to find a fix that doesn't alter this behavior somehow. > Thread-safe problem when using Collections.synchronizedMap in ImmutableMetrics > ------------------------------------------------------------------------------ > > Key: TINKERPOP-2837 > URL: https://issues.apache.org/jira/browse/TINKERPOP-2837 > Project: TinkerPop > Issue Type: Bug > Components: language > Affects Versions: 3.5.4 > Reporter: Redriver > Priority: Major > > When I run the profile() in SparkGraphComputer, I got NPE: > > g.V().hasLabel('Account').has('Source', 10).has('AccountId', > '1000017194').as('sourceAccount').match( > __.as('sourceAccount').outE().inV().hasLabel('phone').as('node1'), > __.as('sourceAccount').outE().inV().hasLabel('name').as('node2'), > __.as('node1').inE().outV().hasLabel('Account').as('targetAccount'), > __.as('targetAccount').outE().inV().as('node2'), where('targetAccount', > neq('sourceAccount'))).select('targetAccount').valueMap().profile() > > 22/12/07 02:21:00.980 dag-scheduler-event-loop ERROR DAGScheduler: Failed to > update accumulator 17 (org.apache.spark.util.LegacyAccumulatorWrapper) for > task 188 > java.lang.NullPointerException > at > java.util.Collections$SynchronizedMap.entrySet(Collections.java:2613) > at > org.apache.tinkerpop.gremlin.process.traversal.util.MutableMetrics.aggregate(MutableMetrics.java:139) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.ProfileStep$ProfileBiOperator.apply(ProfileStep.java:136) > at > org.apache.tinkerpop.gremlin.process.traversal.step.util.ProfileStep$ProfileBiOperator.apply(ProfileStep.java:130) > at > org.apache.tinkerpop.gremlin.spark.process.computer.MemoryAccumulator.addAccumulator(MemoryAccumulator.java:43) > at > org.apache.tinkerpop.gremlin.spark.process.computer.MemoryAccumulator.addInPlace(MemoryAccumulator.java:48) > at > org.apache.tinkerpop.gremlin.spark.process.computer.MemoryAccumulator.addInPlace(MemoryAccumulator.java:29) > at > org.apache.spark.util.LegacyAccumulatorWrapper.merge(AccumulatorV2.scala:512) > at > org.apache.spark.scheduler.DAGScheduler$$anonfun$updateAccumulators$1.apply(DAGScheduler.scala:1255) > at > org.apache.spark.scheduler.DAGScheduler$$anonfun$updateAccumulators$1.apply(DAGScheduler.scala:1246) > at > scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59) > at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48) > at > org.apache.spark.scheduler.DAGScheduler.updateAccumulators(DAGScheduler.scala:1246) > at > org.apache.spark.scheduler.DAGScheduler.handleTaskCompletion(DAGScheduler.scala:1341) > at > org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.doOnReceive(DAGScheduler.scala:2105) > at > org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:2057) > at > org.apache.spark.scheduler.DAGSchedulerEventProcessLoop.onReceive(DAGScheduler.scala:2046) > at org.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala:49) -- This message was sent by Atlassian Jira (v8.20.10#820010)