Jessica Cheng created SOLR-5263:
-----------------------------------

             Summary: CloudSolrServer URL cache update race
                 Key: SOLR-5263
                 URL: https://issues.apache.org/jira/browse/SOLR-5263
             Project: Solr
          Issue Type: Bug
          Components: clients - java, SolrCloud
    Affects Versions: 4.4
            Reporter: Jessica Cheng


In CloudSolrServer.request, urlLists (and the like) is updated if 
lastClusterStateHashCode is different from the current hash code of 
clusterState. However, each time this happen, only the cache entry for the 
current collection being requested is updated. In the following condition this 
causes a race:

query collection A so a cache entry exists
update collection A
query collection B, request method notices the hash code changed and update 
cache for collection B, updates lastClusterStateHashCode
query collection A, since lastClusterStateHashCode has been updated, no update 
for cache for collection A even though it's stale

Can fix one of two ways:
1. Track lastClusterStateHashCode per collection and lazily update each entry
2. Every time we notice lastClusterStateHashCode != clusterState.hashCode(),
   2a. rebuild the entire cache for all collections
   2b. clear all current cache for collections

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

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

Reply via email to