Andrzej Bialecki  created SOLR-11535:
----------------------------------------

             Summary: Weird behavior of CollectionStateWatcher
                 Key: SOLR-11535
                 URL: https://issues.apache.org/jira/browse/SOLR-11535
             Project: Solr
          Issue Type: Bug
      Security Level: Public (Default Security Level. Issues are Public)
    Affects Versions: 7.2, master (8.0)
            Reporter: Andrzej Bialecki 


While working on SOLR-11320 I noticed a strange behavior in 
{{ActiveReplicaWatcher}}, which is a subclass of {{CollectionStateWatcher}} - 
it appears that its {{onStateChanged}} method can be called from multiple 
threads with exactly the same {{DocCollection}} state, ie. unchanged between 
the calls.

This seems to run contrary to the javadoc, which implies that this method is 
called only when the state actually changes, and it also doesn't mention 
anything about the need for thread-safety in the method implementation.

I attached the log, which has a lot of additional debugging - but the most 
pertinent part being where a Watcher-s hashCode is printed together with the 
{{DocCollection}} - notice that these overlapping calls both submit an instance 
of {{DocCollection}} with the same zkVersion.

[~dragonsinth], [~romseygeek] - could you please take a look at this? If this 
behavior is expected then the javadoc should be updated to state clearly that 
multiple calls can be made concurrently, with exactly the same state (which is 
kind of a weak guarantee for a method called {{onStateChanged}} ;) ).



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

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

Reply via email to