Uploaded image for project: 'TinkerPop'
  1. TinkerPop
  2. TINKERPOP-2585

Traversal failed for different strategies order

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 3.5.0
    • 3.6.0, 3.5.2
    • process
    • None

    Description

      Test randomly reproduced, empirically failed when PathRetractionStrategy apply before InlineFilterStrategy

      https://gist.github.com/mad/3027855063bed41bae0a2aa7d2051352

      In real code strategies may change order during static vars initialized

      0
      strategies[ConnectiveStrategy, EarlyLimitStrategy, IdentityRemovalStrategy, MatchPredicateStrategy, RepeatUnrollStrategy, IncidentToAdjacentStrategy, FilterRankingStrategy, InlineFilterStrategy, ByModulatorOptimizationStrategy, CountStrategy, AdjacentToIncidentStrategy, PathRetractionStrategy, LazyBarrierStrategy, TinkerGraphCountStrategy, TinkerGraphStepStrategy, ProfileStrategy, StandardVerificationStrategy]
      1
      strategies[ConnectiveStrategy, IdentityRemovalStrategy, MatchPredicateStrategy, EarlyLimitStrategy, RepeatUnrollStrategy, ByModulatorOptimizationStrategy, CountStrategy, IncidentToAdjacentStrategy, FilterRankingStrategy, InlineFilterStrategy, PathRetractionStrategy, AdjacentToIncidentStrategy, LazyBarrierStrategy, TinkerGraphCountStrategy, TinkerGraphStepStrategy, ProfileStrategy, StandardVerificationStrategy]
      2
      strategies[ConnectiveStrategy, IdentityRemovalStrategy, MatchPredicateStrategy, EarlyLimitStrategy, IncidentToAdjacentStrategy, FilterRankingStrategy, InlineFilterStrategy, RepeatUnrollStrategy, PathRetractionStrategy, CountStrategy, AdjacentToIncidentStrategy, LazyBarrierStrategy, ByModulatorOptimizationStrategy, TinkerGraphCountStrategy, TinkerGraphStepStrategy, ProfileStrategy, StandardVerificationStrategy]
      3
      strategies[ConnectiveStrategy, EarlyLimitStrategy, IdentityRemovalStrategy, MatchPredicateStrategy, IncidentToAdjacentStrategy, FilterRankingStrategy, InlineFilterStrategy, AdjacentToIncidentStrategy, ByModulatorOptimizationStrategy, RepeatUnrollStrategy, PathRetractionStrategy, CountStrategy, LazyBarrierStrategy, TinkerGraphCountStrategy, TinkerGraphStepStrategy, ProfileStrategy, StandardVerificationStrategy]
      4
      strategies[ConnectiveStrategy, EarlyLimitStrategy, IdentityRemovalStrategy, MatchPredicateStrategy, RepeatUnrollStrategy, FilterRankingStrategy, InlineFilterStrategy, IncidentToAdjacentStrategy, AdjacentToIncidentStrategy, CountStrategy, PathRetractionStrategy, LazyBarrierStrategy, ByModulatorOptimizationStrategy, TinkerGraphCountStrategy, TinkerGraphStepStrategy, ProfileStrategy, StandardVerificationStrategy]
      5
      strategies[ConnectiveStrategy, IdentityRemovalStrategy, MatchPredicateStrategy, EarlyLimitStrategy, RepeatUnrollStrategy, ByModulatorOptimizationStrategy, FilterRankingStrategy, IncidentToAdjacentStrategy, InlineFilterStrategy, CountStrategy, PathRetractionStrategy, AdjacentToIncidentStrategy, LazyBarrierStrategy, TinkerGraphCountStrategy, TinkerGraphStepStrategy, ProfileStrategy, StandardVerificationStrategy]
      6
      strategies[ConnectiveStrategy, EarlyLimitStrategy, RepeatUnrollStrategy, IdentityRemovalStrategy, MatchPredicateStrategy, FilterRankingStrategy, InlineFilterStrategy, IncidentToAdjacentStrategy, AdjacentToIncidentStrategy, ByModulatorOptimizationStrategy, PathRetractionStrategy, CountStrategy, LazyBarrierStrategy, TinkerGraphCountStrategy, TinkerGraphStepStrategy, ProfileStrategy, StandardVerificationStrategy]
      7
      strategies[ConnectiveStrategy, EarlyLimitStrategy, IdentityRemovalStrategy, MatchPredicateStrategy, FilterRankingStrategy, InlineFilterStrategy, IncidentToAdjacentStrategy, AdjacentToIncidentStrategy, CountStrategy, RepeatUnrollStrategy, PathRetractionStrategy, LazyBarrierStrategy, ByModulatorOptimizationStrategy, TinkerGraphCountStrategy, TinkerGraphStepStrategy, ProfileStrategy, StandardVerificationStrategy]
      8
      strategies[ConnectiveStrategy, IdentityRemovalStrategy, MatchPredicateStrategy, EarlyLimitStrategy, RepeatUnrollStrategy, FilterRankingStrategy, InlineFilterStrategy, IncidentToAdjacentStrategy, AdjacentToIncidentStrategy, PathRetractionStrategy, CountStrategy, ByModulatorOptimizationStrategy, LazyBarrierStrategy, TinkerGraphCountStrategy, TinkerGraphStepStrategy, ProfileStrategy, StandardVerificationStrategy]
      9
      strategies[ConnectiveStrategy, IdentityRemovalStrategy, MatchPredicateStrategy, RepeatUnrollStrategy, ByModulatorOptimizationStrategy, IncidentToAdjacentStrategy, PathRetractionStrategy, FilterRankingStrategy, InlineFilterStrategy, CountStrategy, AdjacentToIncidentStrategy, EarlyLimitStrategy, LazyBarrierStrategy, TinkerGraphCountStrategy, TinkerGraphStepStrategy, ProfileStrategy, StandardVerificationStrategy]
      
      java.lang.IllegalArgumentException: The provided traverser does not map to a value: v[4]->[SelectOneStep(last,org1), IdStep]
      
      	at org.apache.tinkerpop.gremlin.process.traversal.util.TraversalUtil.apply(TraversalUtil.java:46)
      	at org.apache.tinkerpop.gremlin.process.traversal.util.TraversalUtil.applyNullable(TraversalUtil.java:87)
      	at org.apache.tinkerpop.gremlin.process.traversal.step.map.ProjectStep.map(ProjectStep.java:55)
      	at org.apache.tinkerpop.gremlin.process.traversal.step.map.ProjectStep.map(ProjectStep.java:40)
      	at org.apache.tinkerpop.gremlin.process.traversal.step.map.ScalarMapStep.processNextStart(ScalarMapStep.java:40)
      	at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.hasNext(AbstractStep.java:150)
      	at org.apache.tinkerpop.gremlin.process.traversal.util.DefaultTraversal.hasNext(DefaultTraversal.java:216)
      	at org.apache.tinkerpop.gremlin.process.traversal.step.map.FlatMapStep.processNextStart(FlatMapStep.java:44)
      	at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:135)
      	at org.apache.tinkerpop.gremlin.process.traversal.step.util.AbstractStep.next(AbstractStep.java:40)
      	at org.apache.tinkerpop.gremlin.process.traversal.Traversal.fill(Traversal.java:184)
      	at org.apache.tinkerpop.gremlin.process.traversal.Traversal.toList(Traversal.java:122)
      Process finished with exit code 255
      
      

      Script for repeat execution

      watch -e -n 0.1 'mvn verify  -Dit.test=TraversalFailIT -l 1.log'
      

      Attachments

        Activity

          People

            spmallette Stephen Mallette
            Ershov Pavel
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: