You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Hoss Man (JIRA)" <ji...@apache.org> on 2017/01/27 18:16:25 UTC

[jira] [Commented] (SOLR-10048) Distributed result set paging sometimes yields incorrect results

    [ https://issues.apache.org/jira/browse/SOLR-10048?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15843215#comment-15843215 ] 

Hoss Man commented on SOLR-10048:
---------------------------------

I don't see a "sort" specified in the test queries, which means the order is non-deterministic (and practically speaking winds up depending on the on disk ordering of the docs). so there is no guarantee that the order of documents matching the query will be the same in two identical queries -- let alone if you change the paging.

even in a non distrib setup, this test could fail if your config alows for background merges that re-order segments.

> Distributed result set paging sometimes yields incorrect results
> ----------------------------------------------------------------
>
>                 Key: SOLR-10048
>                 URL: https://issues.apache.org/jira/browse/SOLR-10048
>             Project: Solr
>          Issue Type: Bug
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: SearchComponents - other
>    Affects Versions: 6.4
>            Reporter: Markus Jelsma
>            Priority: Critical
>             Fix For: 6.4.1, master (7.0)
>
>         Attachments: DistributedPagedQueryComponentTest.java
>
>
> This bug appeared in 6.4 and i spotted it yesterday when i upgraded a my project. It has, amongst others,an extension of QueryComponent, its unit test failed, but never in any predictable way and always in another spot.
> The test is very straightforward, it indexes a bunch of silly documents and then executes a series of getAll() queries. An array of ids is collected and stored for comparison. Then, the same query is executed again but it pages through the entire result set.
> It then compares ids, the id at position N must be the same as id NUM_PAGE * PAGE_SIZE + M (where M is the position of the result in the paged set). The comparison sometimes failes.
> I'll attach the test for 6.4 shortly. If it passes, just try it again (or increase maxDocs). It can pass over ten times in a row, but it can also fail ten times in a row.
> You should see this if it fails, but probably with different values for expected and actual. Below was a few minutes ago, now i can't seem to reproduce it anymore.
> {code}
>    [junit4] FAILURE 25.1s | DistributedPagedQueryComponentTest.testTheCrazyPager <<<
>    [junit4]    > Throwable #1: java.lang.AssertionError: ids misaligned expected:<406> but was:<811>
>    [junit4]    >        at __randomizedtesting.SeedInfo.seed([97A7F02D1E4ACF75:7493130F03129E6D]:0)
>    [junit4]    >        at org.apache.solr.handler.component.DistributedPagedQueryComponentTest.testTheCrazyPager(DistributedPagedQueryComponentTest.java:83)
>    [junit4]    >        at org.apache.solr.BaseDistributedSearchTestCase$ShardsRepeatRule$ShardsFixedStatement.callStatement(BaseDistributedSearchTestCase.java:992)
>    [junit4]    >        at org.apache.solr.BaseDistributedSearchTestCase$ShardsRepeatRule$ShardsStatement.evaluate(BaseDistributedSearchTestCase.java:967)
>    [junit4]    >        at java.lang.Thread.run(Thread.java:745)
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org