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

Darrel Schneider updated GEODE-3174:
------------------------------------
    Affects Version/s: 1.0.0-incubating
                       1.1.0
                       1.1.1

> 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
>    Affects Versions: 1.0.0-incubating, 1.1.0, 1.1.1, 1.2.0
>            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)

Reply via email to