dblock commented on pull request #711:
URL: https://github.com/apache/lucene/pull/711#issuecomment-1057078347


   I think we have a case of floating point here. 
   
   If you change `getMinCompetitiveScore` to take a `double` or `minScoreSum`, 
it becomes easy to reproduce. It also almost always starts tripping 
`testNClausesRandomScore` and often `test2ClausesRandomScore`.
   
   ```java
   private float getMinCompetitiveScore(double minScoreSum, double 
sumOfOtherMaxScores)
   ```
   
   ```java
     public void testGetMinCompetitiveScore() throws Exception {   
   
       List<FakeScorer> scorers = new ArrayList<>();
       scorers.add(new FakeScorer(0.39404958f));
       scorers.add(new FakeScorer(0.0028006434f));
       scorers.add(new FakeScorer(0.24155897f));
   
       float minScoreSum = 2.7810444831848145f;
       MaxScoreSumPropagator p = new MaxScoreSumPropagator(scorers);
       p.setMinCompetitiveScore(minScoreSum);
     }
   ```
   
   I wasn't able to trip it with a float `minScoreSum` though with the values 
in the issue, but it has to exist, given that it happened in production. 
   
   It looks like converging in `getMinCompetitiveScore` relies on truncating 
(rounding?) doubles to floats, so this looks suspicious to me.
   
   Any ideas of what we can do next?
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to