gerlowskija opened a new pull request, #2765:
URL: https://github.com/apache/solr/pull/2765

   # Description
   
   SolrQueryRequest is a non-threadsafe type, but was being shared across 
executor threads during UpdateLog replay.  This introduces a number of issues, 
not the least being a ConcurrentModificationException if multiple threads 
happen to tweak the request 'context' simultaneously.
   
   # Solution
   
   This commit fixes this issue by giving each executor thread a unique 
LocalSolrQueryRequest instance to use.
   
   # Tests
   
   The problem is reproducible (on my hardware at least) via 'beasting' 
`BasicDistributedZkTest` for several hundred iterations but is otherwise hard 
to trigger.  The test passes reliably with this fix, which can give us some 
confidence I think.  Though if anyone can think of a better way to capture this 
in an automated test, I'd love to get some additional validation!
   
   # Checklist
   
   Please review the following and check all that apply:
   
   - [x] I have reviewed the guidelines for [How to 
Contribute](https://github.com/apache/solr/blob/main/CONTRIBUTING.md) and my 
code conforms to the standards described there to the best of my ability.
   - [x] I have created a Jira issue and added the issue ID to my pull request 
title.
   - [x] 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, not available for 
branches on forks living under an organisation)
   - [x] I have developed this patch against the `main` branch.
   - [x] I have run `./gradlew check`.
   - [ ] I have added tests for my changes.
   


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


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

Reply via email to