You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geode.apache.org by "Kirk Lund (JIRA)" <ji...@apache.org> on 2016/12/21 23:31:58 UTC

[jira] [Resolved] (GEODE-2244) Cluster config start is async and may not be ready when requests start coming in

     [ https://issues.apache.org/jira/browse/GEODE-2244?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kirk Lund resolved GEODE-2244.
------------------------------
    Resolution: Duplicate

> Cluster config start is async and may not be ready when requests start coming in
> --------------------------------------------------------------------------------
>
>                 Key: GEODE-2244
>                 URL: https://issues.apache.org/jira/browse/GEODE-2244
>             Project: Geode
>          Issue Type: Bug
>          Components: configuration
>    Affects Versions: 1.0.0-incubating
>            Reporter: Kirk Lund
>            Assignee: Kirk Lund
>
> This wouldn't be a problem but it looks like the locator hosting cluster config may reply to requests saying that it doesn't have cluster config enabled.
> The method in InternalLocator is startCache(DistributedSystem):
> {code:java}
>   private void startCache(DistributedSystem ds) {
>     GemFireCacheImpl gfc = GemFireCacheImpl.getInstance();
>     if (gfc == null) {
>       logger.info("Creating cache for locator.");
>       this.myCache = new CacheFactory(ds.getProperties()).create();
>       gfc = (GemFireCacheImpl) this.myCache;
>     } else {
>       logger.info("Using existing cache for locator.");
>       ((InternalDistributedSystem) ds).handleResourceEvent(ResourceEvent.LOCATOR_START, this);
>     }
>     startJmxManagerLocationService(gfc);
>     startSharedConfigurationService(gfc);
>   }
> {code}
> The method startSharedConfigurationService hands off to a thread to load cluster config and use distributed lock service to become primary cluster config source. This was probably made async due to use of distributed lock service to keep startup responsive. Unfortunately, it opens up a race condition window -- if any requests come in before cluster config is ready, the locator will reply saying it doesn't have cluster config. I think some of our Flaky tests are hitting this race condition.



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