You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Anilkumar Gingade (JIRA)" <ji...@apache.org> on 2017/07/07 19:40:00 UTC

[jira] [Created] (GEODE-3174) Use of multiple cache configuration (xml) can alter/impact cache setting during restart.

Anilkumar Gingade created GEODE-3174:
----------------------------------------

             Summary: Use of multiple cache configuration (xml) can alter/impact cache setting during restart.
                 Key: GEODE-3174
                 URL: https://issues.apache.org/jira/browse/GEODE-3174
             Project: Geode
          Issue Type: Bug
          Components: configuration
            Reporter: Anilkumar Gingade


When system is configured using multiple cache configuration xml, the cache setting could differ during restart.

When a geode node is configured using, cluster configuration and its own cache.xml; during re-start the cache.xml settings are applied only after cluster-configuration xml is parsed which leads to cache getting created/initialized using partial configuration details.

One of the problem encountered is with pdx persistent setting. The pdx persistent setting was done using node's cache.xml. And persistent regions are created using cluster configuration. When the node was re-started, the system parses the cluster-configuration file, and while creating the persistent region throws exception saying pdx is not persisted, as the pdx persistent setting is defined in cache.xml; which is processed later.

While code walk through, noticed one more issue with pdx-type registry, which could get created as non-persistent region when the node is re-started.

One solution would be to merge all the xml (cluster-configuration, server-group and cache.xml) before cache creation is invoked.

Steps to reproduce:

Start locator.
Start server1 with its own cache.xml with pdx-persistance set  (make sure use-cluster configuration is set to true)
Start server2 with its own cache.xml with pdx-persistance set  (make sure use-cluster configuration is set to true)
create non-persistent-partition region. Add pdx entries to it.
create persistent-partition region.
stop server2
re-start server2
it fails with:
Exception in thread "main" org.apache.geode.pdx.PdxInitializationException: The PDX metadata must be persistent in a member that has persistent data. See CacheFactory.setPdxPersistent.
        at org.apache.geode.pdx.internal.PeerTypeRegistration.checkAllowed(PeerTypeRegistration.java:535)
        at org.apache.geode.pdx.internal.PeerTypeRegistration.creatingPersistentRegion(PeerTypeRegistration.java:483)
        at org.apache.geode.pdx.internal.TypeRegistry.creatingPersistentRegion(TypeRegistry.java:276)
        at org.apache.geode.internal.cache.LocalRegion.findDiskStore(LocalRegion.java:7800)
        at org.apache.geode.internal.cache.PartitionedRegion.findDiskStore(PartitionedRegion.java:9378)
        at org.apache.geode.internal.cache.LocalRegion.<init>(LocalRegion.java:600)
        at org.apache.geode.internal.cache.PartitionedRegion.<init>(PartitionedRegion.java:614)
        at org.apache.geode.internal.cache.GemFireCacheImpl.createVMRegion(GemFireCacheImpl.java:3260)
        at org.apache.geode.internal.cache.GemFireCacheImpl.basicCreateRegion(GemFireCacheImpl.java:3199)
        at org.apache.geode.internal.cache.xmlcache.RegionCreation.createRoot(RegionCreation.java:255)
        at org.apache.geode.internal.cache.xmlcache.CacheCreation.initializeRegions(CacheCreation.java:544)
        at org.apache.geode.internal.cache.xmlcache.CacheCreation.create(CacheCreation.java:495)
        at org.apache.geode.internal.cache.xmlcache.CacheXmlParser.create(CacheXmlParser.java:343)
        at org.apache.geode.internal.cache.GemFireCacheImpl.loadCacheXml(GemFireCacheImpl.java:4483)
        at org.apache.geode.internal.cache.ClusterConfigurationLoader.applyClusterXmlConfiguration(ClusterConfigurationLoader.java:129)
        at org.apache.geode.internal.cache.GemFireCacheImpl.initialize(GemFireCacheImpl.java:1245)
        at org.apache.geode.internal.cache.GemFireCacheImpl.basicCreate(GemFireCacheImpl.java:796)
        at org.apache.geode.internal.cache.GemFireCacheImpl.create(GemFireCacheImpl.java:783)
        at org.apache.geode.cache.CacheFactory.create(CacheFactory.java:179)
        at org.apache.geode.cache.CacheFactory.create(CacheFactory.java:219)
        at org.apache.geode.distributed.internal.DefaultServerLauncherCacheProvider.createCache(DefaultServerLauncherCacheProvider.java:52)
        at org.apache.geode.distributed.ServerLauncher.createCache(ServerLauncher.java:857)
        at org.apache.geode.distributed.ServerLauncher.start(ServerLauncher.java:769)
        at org.apache.geode.distributed.ServerLauncher.run(ServerLauncher.java:696)
        at org.apache.geode.distributed.ServerLauncher.main(ServerLauncher.java:228)

 




 







--
This message was sent by Atlassian JIRA
(v6.4.14#64029)