[
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)