[ https://issues.apache.org/jira/browse/GEODE-10123?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jakov Varenina updated GEODE-10123: ----------------------------------- Description: We have observed that sometimes the "create region" command executes successfully during period servers restart event thought region is already available in the cluster configuration. When this happens, cluster configuration contains a duplicated region, so servers throw the following exception *org.apache.geode.cache.RegionExistsException* at startup: {code:java} Exception in thread "main" org.apache.geode.cache.CacheXmlException: While parsing XML, caused by org.xml.sax.SAXException: A CacheException was thrown while parsing XML. org.apache.geode.cache.RegionExistsException: /regionTest at org.apache.geode.internal.cache.xmlcache.CacheXmlParser.parse(CacheXmlParser.java:267) at org.apache.geode.internal.cache.GemFireCacheImpl.loadCacheXml(GemFireCacheImpl.java:4119) at org.apache.geode.internal.cache.ClusterConfigurationLoader.applyClusterXmlConfiguration(ClusterConfigurationLoader.java:208) at org.apache.geode.internal.cache.GemFireCacheImpl.applyJarAndXmlFromClusterConfig(GemFireCacheImpl.java:1426) at org.apache.geode.internal.cache.GemFireCacheImpl.initialize(GemFireCacheImpl.java:1391) at org.apache.geode.internal.cache.InternalCacheBuilder.create(InternalCacheBuilder.java:191) at org.apache.geode.internal.cache.InternalCacheBuilder.create(InternalCacheBuilder.java:158) at org.apache.geode.cache.CacheFactory.create(CacheFactory.java:142) at org.apache.geode.distributed.internal.DefaultServerLauncherCacheProvider.createCache(DefaultServerLauncherCacheProvider.java:52) at org.apache.geode.distributed.ServerLauncher.createCache(ServerLauncher.java:892) at org.apache.geode.distributed.ServerLauncher.start(ServerLauncher.java:807) at org.apache.geode.distributed.ServerLauncher.run(ServerLauncher.java:737) at org.apache.geode.distributed.ServerLauncher.main(ServerLauncher.java:256) Caused by: org.xml.sax.SAXException: A CacheException was thrown while parsing XML. {code} CreateRegionCommand checks whether there is already an existing region using the DistributedRegionMXBean service. This service is sometimes unreliable during restarts, as it takes some time for the locator to accumulate this information. It makes more sense to perform required checks against cluster configuration stored on locators when using cluster configuration. was: We have observed that sometimes the "create region" command executes successfully during period servers restart event thought region is already available in the cluster configuration. When this happens, cluster configuration contains duplicated region, and because of that, servers throw the following exception at startup: {code:java} Exception in thread "main" org.apache.geode.cache.CacheXmlException: While parsing XML, caused by org.xml.sax.SAXException: A CacheException was thrown while parsing XML. org.apache.geode.cache.RegionExistsException: /regionTest at org.apache.geode.internal.cache.xmlcache.CacheXmlParser.parse(CacheXmlParser.java:267) at org.apache.geode.internal.cache.GemFireCacheImpl.loadCacheXml(GemFireCacheImpl.java:4119) at org.apache.geode.internal.cache.ClusterConfigurationLoader.applyClusterXmlConfiguration(ClusterConfigurationLoader.java:208) at org.apache.geode.internal.cache.GemFireCacheImpl.applyJarAndXmlFromClusterConfig(GemFireCacheImpl.java:1426) at org.apache.geode.internal.cache.GemFireCacheImpl.initialize(GemFireCacheImpl.java:1391) at org.apache.geode.internal.cache.InternalCacheBuilder.create(InternalCacheBuilder.java:191) at org.apache.geode.internal.cache.InternalCacheBuilder.create(InternalCacheBuilder.java:158) at org.apache.geode.cache.CacheFactory.create(CacheFactory.java:142) at org.apache.geode.distributed.internal.DefaultServerLauncherCacheProvider.createCache(DefaultServerLauncherCacheProvider.java:52) at org.apache.geode.distributed.ServerLauncher.createCache(ServerLauncher.java:892) at org.apache.geode.distributed.ServerLauncher.start(ServerLauncher.java:807) at org.apache.geode.distributed.ServerLauncher.run(ServerLauncher.java:737) at org.apache.geode.distributed.ServerLauncher.main(ServerLauncher.java:256) Caused by: org.xml.sax.SAXException: A CacheException was thrown while parsing XML. {code} CreateRegionCommand checks whether there is already an existing region using the DistributedRegionMXBean service. This service is sometimes unreliable during restarts, as it takes some time for the locator to accumulate this information. It makes more sense to perform required checks against cluster configuration stored on locators when using cluster configuration. > Multiple execution of Create region command results with duplicated region in > cluster configuration > --------------------------------------------------------------------------------------------------- > > Key: GEODE-10123 > URL: https://issues.apache.org/jira/browse/GEODE-10123 > Project: Geode > Issue Type: Bug > Reporter: Jakov Varenina > Assignee: Jakov Varenina > Priority: Major > Labels: needsTriage, pull-request-available > > We have observed that sometimes the "create region" command executes > successfully during period servers restart event thought region is already > available in the cluster configuration. When this happens, cluster > configuration contains a duplicated region, so servers throw the following > exception *org.apache.geode.cache.RegionExistsException* at startup: > {code:java} > Exception in thread "main" org.apache.geode.cache.CacheXmlException: While > parsing XML, caused by org.xml.sax.SAXException: A CacheException was thrown > while parsing XML. > org.apache.geode.cache.RegionExistsException: /regionTest > at > org.apache.geode.internal.cache.xmlcache.CacheXmlParser.parse(CacheXmlParser.java:267) > at > org.apache.geode.internal.cache.GemFireCacheImpl.loadCacheXml(GemFireCacheImpl.java:4119) > at > org.apache.geode.internal.cache.ClusterConfigurationLoader.applyClusterXmlConfiguration(ClusterConfigurationLoader.java:208) > at > org.apache.geode.internal.cache.GemFireCacheImpl.applyJarAndXmlFromClusterConfig(GemFireCacheImpl.java:1426) > at > org.apache.geode.internal.cache.GemFireCacheImpl.initialize(GemFireCacheImpl.java:1391) > at > org.apache.geode.internal.cache.InternalCacheBuilder.create(InternalCacheBuilder.java:191) > at > org.apache.geode.internal.cache.InternalCacheBuilder.create(InternalCacheBuilder.java:158) > at > org.apache.geode.cache.CacheFactory.create(CacheFactory.java:142) > at > org.apache.geode.distributed.internal.DefaultServerLauncherCacheProvider.createCache(DefaultServerLauncherCacheProvider.java:52) > at > org.apache.geode.distributed.ServerLauncher.createCache(ServerLauncher.java:892) > at > org.apache.geode.distributed.ServerLauncher.start(ServerLauncher.java:807) > at > org.apache.geode.distributed.ServerLauncher.run(ServerLauncher.java:737) > at > org.apache.geode.distributed.ServerLauncher.main(ServerLauncher.java:256) > Caused by: org.xml.sax.SAXException: A CacheException was thrown while > parsing XML. > {code} > CreateRegionCommand checks whether there is already an existing region using > the DistributedRegionMXBean service. This service is sometimes unreliable > during restarts, as it takes some time for the locator to accumulate this > information. It makes more sense to perform required checks against cluster > configuration stored on locators when using cluster configuration. -- This message was sent by Atlassian Jira (v8.20.1#820001)