Renaud Delbru created SOLR-6621:
-----------------------------------

             Summary: SolrZkClient does not guarantee that a watch object will 
only be triggered once for a given notification
                 Key: SOLR-6621
                 URL: https://issues.apache.org/jira/browse/SOLR-6621
             Project: Solr
          Issue Type: Bug
          Components: SolrCloud
    Affects Versions: Trunk
            Reporter: Renaud Delbru


The SolrZkClient provides methods such as getData or exists. The problem is 
that the client automatically wraps the provided watcher with a new watcher 
(see 
[here|https://github.com/apache/lucene-solr/blob/6ead83a6fafbdd6c444e2a837b09eccf34a255ef/solr/solrj/src/java/org/apache/solr/common/cloud/SolrZkClient.java#L255])
 which breaks the guarantee that "a watch object, or function/context pair, 
will only be triggered once for a given notification". This creates undesirable 
effects when we are registering the same watch is the Watcher callback method.

A possible solution would be to introduce a SolrZkWatcher class, that will take 
care of submitting the job to the zkCallbackExecutor. Components in SolrCloud 
will extend this class and implement their own callback method. This will 
ensure that the watcher object that zookeeper receives remains the same.

See SOLR-6462 for background information.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

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

Reply via email to