-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/55074/
-----------------------------------------------------------

Review request for geode, Udo Kohlmeyer and Dan Smith.


Bugs: GEODE-2238 and GEODE-2253
    https://issues.apache.org/jira/browse/GEODE-2238
    https://issues.apache.org/jira/browse/GEODE-2253


Repository: geode


Description
-------

__Background__

Initially the Locator had but one service - peer-location.

When connection pools were added to client caches a server-location service was 
added to the locator, which boots up after the peer location service and isn't 
actually available until after StartupMessages have been exchanged.  During the 
interval between joining and StartupMessage exchange the handler for 
server-location messages isn't available and the Locator used to log a warning. 
 I fixed that by supressing the warning if we knew that server-location was 
going to be enabled.

Now a Cluster Configuration service has been added that isn't initialized and 
available until some time after a Cache has been created in the Locator, which 
is an even longer gap than the server-location service had.  During this time a 
new member might join and try to get the shared configuration from the locator. 
 The locator then logs a warning and does not respond, so the new member ends 
up shutting down.

__The Fix__

This introduces a retry loop in the locator when a handler for an incoming 
message can't be found.  It waits for an amount of time for the handler to be 
installed, which I've set to the locator-wait-time or 5 seconds if that 
property hasn't been set.

I've also changed InternalLocator to always install the handler for cluster 
configuration status so that you can query any locator to see if it has a 
cluster configuration service and, if so, what state it's in.


Diffs
-----

  
geode-core/src/main/java/org/apache/geode/distributed/internal/InternalLocator.java
 59488ad66e861fde67840f75dae413f247c821f4 
  
geode-core/src/main/java/org/apache/geode/distributed/internal/tcpserver/TcpServer.java
 83fdd0b1697f541034a91e02e1e0c96de4493cd0 
  geode-core/src/test/java/org/apache/geode/distributed/LocatorJUnitTest.java 
65f09476ff06542739c63147dab29b71d5550dd0 

Diff: https://reviews.apache.org/r/55074/diff/


Testing
-------

precheckin, new unit test


Thanks,

Bruce Schuchardt

Reply via email to