Details
-
Improvement
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
1.15.0
Description
While debugging another issue I noticed that a locator was trying to send a notice to another locator in its cluster telling it that the recipient had joined.
[warn 2021/02/16 15:16:56.195 PST locatorgemfire_4_3_host2_9736 <LocatorsDistributorThread1> tid=0x153] Locator Membership listener permanently failed to exchange locator information rs-GEM-3188-VJ1459-1a0i3large-hydra-client-1:27878 with rs-GEM-3188-VJ1459-1a0i3large-hydra-client-2:28778 after 3 retry attempts
This messaging is unnecessary. The locator that this message was being sent to already knows about itself. This is being done in DistributeLocatorsRunnable.run().
for (DistributionLocatorId remoteLocator : entry.getValue()) { // Notify known remote locator about the advertised locator. LocatorJoinMessage advertiseNewLocatorMessage = new LocatorJoinMessage( joiningLocatorDistributedSystemId, joiningLocator, localLocatorId, ""); sendMessage(remoteLocator, advertiseNewLocatorMessage, failedMessages); // Notify the advertised locator about remote known locator. LocatorJoinMessage advertiseKnownLocatorMessage = new LocatorJoinMessage(entry.getKey(), remoteLocator, localLocatorId, ""); sendMessage(joiningLocator, advertiseKnownLocatorMessage, failedMessages); }
It should check to see if the joiningLocator ID is equal to the remoteLocator ID and, if so, not create messages in that iteration.
Attachments
Issue Links
- links to