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

Adrien Grand commented on LUCENE-8592:
--------------------------------------

I see, the patch is applying reverseMul on top of the comparison result rather 
than on values themselves, like search-time sort. That is still subject to bugs 
but much less likely I guess.

+1 to merge. Let's get someone else to have a look at it first, but it would be 
nice to have it in 7.6 too.

Does CheckIndex fail on broken indices? That could be helpful to know whether 
users can trust it to check whether they are affected and need to reindex.

> MultiSorter#sort incorrectly sort Integer/Long#MIN_VALUE when the natural 
> sort is reversed
> ------------------------------------------------------------------------------------------
>
>                 Key: LUCENE-8592
>                 URL: https://issues.apache.org/jira/browse/LUCENE-8592
>             Project: Lucene - Core
>          Issue Type: Bug
>            Reporter: Jim Ferenczi
>            Priority: Major
>         Attachments: LUCENE-8592.patch
>
>
> MultiSorter#getComparableProviders on an integer or long field doesn't handle 
> MIN_VALUE correctly when the natural order is reversed. To handle reverse 
> sort we use the negation of the value but there is no check for overflows so 
> MIN_VALUE for ints and longs are always sorted first (even if the natural 
> order is reversed). 
> This method is used by index sorting when merging already sorted segments 
> together. This means that a sorted index can be incorrectly sorted if it uses 
> a reverse sort and a missing value set to MIN_VALUE (long or int or values 
> inside the segment that are equals to MIN_VALUE).
> This a bad bug because it affects the documents order inside segments and 
> only a reindex can restore the correct sort order. 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to