thelabdude opened a new pull request #133:
URL: https://github.com/apache/solr/pull/133


   # Description
   
   IndexFetcher was triggering a local commit for a PULL replica core which 
caused a race condition where the PULL replica would think its index generation 
/ version were the same as the leader (see log I posted in JIRA). 
   
   From IndexFetcher, line 479:
   ```
             if (skipCommitOnLeaderVersionZero) {
               openNewSearcherAndUpdateCommitPoint();
             } else {
               SolrQueryRequest req = new LocalSolrQueryRequest(solrCore, new 
ModifiableSolrParams());
               solrCore.getUpdateHandler().commit(new CommitUpdateCommand(req, 
false));
             }
   ```
   
   This would cause the PULL replica to not sync index updates with the leader 
in the tests (since they do it doc at a time).
   
   # Solution
   
   I don't think PULL replicas should ever commit locally and should always get 
the index from the leader. So this PR ensures that 
`skipCommitOnLeaderVersionZero` is `true` for PULL replicas, which avoids this 
race condition.
   
   # Tests
   
   Removing `@BadApple` from several flaky tests that pass consistently now: 
200/200 beasts (tests would fail within about 40 beast runs w/o this fix)
   
   # Checklist
   
   Please review the following and check all that apply:
   
   - [ ] I have reviewed the guidelines for [How to 
Contribute](https://wiki.apache.org/solr/HowToContribute) and my code conforms 
to the standards described there to the best of my ability.
   - [ ] I have created a Jira issue and added the issue ID to my pull request 
title.
   - [ ] I have given Solr maintainers 
[access](https://help.github.com/en/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork)
 to contribute to my PR branch. (optional but recommended)
   - [ ] I have developed this patch against the `main` branch.
   - [ ] I have run `./gradlew check`.
   - [ ] I have added tests for my changes.
   - [ ] I have added documentation for the [Reference 
Guide](https://github.com/apache/solr/tree/main/solr/solr-ref-guide)
   


-- 
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.

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



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

Reply via email to