[ 
https://issues.apache.org/jira/browse/TINKERPOP-2490?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Stephen Mallette reopened TINKERPOP-2490:
-----------------------------------------

While running integration tests for our likely release next week, I've noticed 
that {{EarlyLimitStrategy} related tests are failing in a {{GraphComputer}} 
context.

{code}
[ERROR] Tests run: 797, Failures: 0, Errors: 1, Skipped: 7, Time elapsed: 
14.266 s <<< FAILURE! - in 
org.apache.tinkerpop.gremlin.tinkergraph.process.TinkerGraphNoStrategyProcessStandardIntegrateTest
[ERROR] 
org.apache.tinkerpop.gremlin.process.traversal.strategy.optimization.EarlyLimitStrategyProcessTest
  Time elapsed: 0.049 s  <<< ERROR!
java.lang.NullPointerException
{code}

It's probably not a big deal to fix, but rather than risk the change in this 
short time frame to release, I think it better to take our time fixing this and 
introducing it in 3.4.11 (I also don't have any time to focus on digging into 
this between now and release). 

> RangeGlobalStep touches next traverser when high limit is already hit
> ---------------------------------------------------------------------
>
>                 Key: TINKERPOP-2490
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-2490
>             Project: TinkerPop
>          Issue Type: Bug
>          Components: process
>    Affects Versions: 3.4.8
>            Reporter: Guo Junshi
>            Assignee: Stephen Mallette
>            Priority: Major
>             Fix For: 3.5.0, 3.4.10
>
>
> In FilterStep, the processNextStart() method will first retrieve next 
> traverser and then apply filtering logic. But for RangleGlobalStep, if high 
> limit is already hit, there will be no need to get next traverser.
> {code:java}
> @Override
> protected Traverser.Admin<S> processNextStart() {
>     while (true) {
>         final Traverser.Admin<S> traverser = this.starts.next();
>         if (this.filter(traverser))
>             return traverser;
>     }
> }
> {code}
> An example would be limit step: g.V().limit(1). This query will touch 2 
> vertices although only 1 vertex will be returned.
> This extra data loading will cause performance defects if DB data loading is 
> involved. It is not a functionality bug, but for better performance, we'd 
> better check high range limit first before touching next traversal.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to