Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dynamic MapConfig from client side does not respect some options #15382

Closed
lazerion opened this issue Jul 28, 2019 · 1 comment · Fixed by #15391
Closed

Dynamic MapConfig from client side does not respect some options #15382

lazerion opened this issue Jul 28, 2019 · 1 comment · Fixed by #15391

Comments

@lazerion
Copy link
Contributor

@lazerion lazerion commented Jul 28, 2019

MapConfig options readBackupData and statisticsEnabled are not respected when a new MapConfig is dynamically added from a client to a running Hazelcast cluster.

---- original issue description follows
DynamicConfigBouncingTest failures

  • Fails on Hazelcast-3.x-IbmJDK8-fips-nightly, Hazelcast-3.x-nightly, Hazelcast-3.x-sonar

  • Failing job

  • Unable to extract commit id. Possible 97ed63b

  • Sample Stack Trace

java.lang.AssertionError: expected:<MapConfig{name='8a8a218d-2817-44f7-a961-534688a8b210', inMemoryFormat=OBJECT', metadataPolicy=CREATE_ON_UPDATE, backupCount=3, asyncBackupCount=0, timeToLiveSeconds=12, maxIdleSeconds=20, evictionPolicy='NONE', mapEvictionPolicy='com.hazelcast.map.eviction.LFUEvictionPolicy@a5788462', maxSizeConfig=MaxSizeConfig{maxSizePolicy='FREE_HEAP_SIZE', size=1000}, readBackupData=true, merkleTree=MerkleTreeConfig{enabled=false, depth=10}, eventJournal=EventJournalConfig{enabled=false, capacity=10000, timeToLiveSeconds=0}, hotRestart=HotRestartConfig{enabled=true, fsync=true}, nearCacheConfig=NearCacheConfig{name=default, inMemoryFormat=NATIVE, invalidateOnChange=true, timeToLiveSeconds=0, maxIdleSeconds=0, evictionConfig=EvictionConfig{size=10000, maxSizePolicy=ENTRY_COUNT, evictionPolicy=LRU, comparatorClassName=null, comparator=null}, cacheLocalEntries=true, localUpdatePolicy=CACHE_ON_UPDATE, preloaderConfig=NearCachePreloaderConfig{enabled=true, directory=, storeInitialDelaySeconds=600, storeIntervalSeconds=600}}, mapStoreConfig=MapStoreConfig{enabled=true, className='foo.bar.MapStoreDoesNotExist', factoryClassName='null', writeDelaySeconds=0, writeBatchSize=1, implementation=null, factoryImplementation=null, properties={}, initialLoadMode=LAZY, writeCoalescing=true}, mergePolicyConfig=MergePolicyConfig{policy='com.hazelcast.spi.merge.PutIfAbsentMergePolicy', batchSize=100}, wanReplicationRef=WanReplicationRef{name='name', mergePolicy='foo.bar.PolicyClass', filters='[]', republishingEnabled='true'}, entryListenerConfigs=[EntryListenerConfig{local=true, includeValue=true}, EntryListenerConfig{local=true, includeValue=true}, EntryListenerConfig{local=true, includeValue=true}], mapIndexConfigs=[MapIndexConfig{attribute='orderAttribute', ordered=true}, MapIndexConfig{attribute='unorderedAttribute', ordered=false}], mapAttributeConfigs=[MapAttributeConfig{name='attribute'extractor='foo.bar.ExtractorClass'}], quorumName=quorum, queryCacheConfigs=[QueryCacheConfig{batchSize=100, bufferSize=16, delaySeconds=0, includeValue=true, populate=true, coalesce=false, inMemoryFormat=OBJECT, name='queryCacheName', predicateConfig=PredicateConfig{className='null', sql='null', implementation=null}, evictionConfig=EvictionConfig{size=10000, maxSizePolicy=ENTRY_COUNT, evictionPolicy=LRU, comparatorClassName=null, comparator=null}, entryListenerConfigs=[EntryListenerConfig{local=false, includeValue=true}], indexConfigs=[MapIndexConfig{attribute='attribute', ordered=false}]}], cacheDeserializedValues=ALWAYS}> but was:<MapConfig{name='8a8a218d-2817-44f7-a961-534688a8b210', inMemoryFormat=OBJECT', metadataPolicy=CREATE_ON_UPDATE, backupCount=3, asyncBackupCount=0, timeToLiveSeconds=12, maxIdleSeconds=20, evictionPolicy='NONE', mapEvictionPolicy='com.hazelcast.map.eviction.LFUEvictionPolicy@a5788462', maxSizeConfig=MaxSizeConfig{maxSizePolicy='FREE_HEAP_SIZE', size=1000}, readBackupData=false, merkleTree=MerkleTreeConfig{enabled=false, depth=10}, eventJournal=EventJournalConfig{enabled=false, capacity=10000, timeToLiveSeconds=0}, hotRestart=HotRestartConfig{enabled=true, fsync=true}, nearCacheConfig=NearCacheConfig{name=default, inMemoryFormat=NATIVE, invalidateOnChange=true, timeToLiveSeconds=0, maxIdleSeconds=0, evictionConfig=EvictionConfig{size=10000, maxSizePolicy=ENTRY_COUNT, evictionPolicy=LRU, comparatorClassName=null, comparator=null}, cacheLocalEntries=true, localUpdatePolicy=CACHE_ON_UPDATE, preloaderConfig=NearCachePreloaderConfig{enabled=true, directory=, storeInitialDelaySeconds=600, storeIntervalSeconds=600}}, mapStoreConfig=MapStoreConfig{enabled=true, className='foo.bar.MapStoreDoesNotExist', factoryClassName='null', writeDelaySeconds=0, writeBatchSize=1, implementation=null, factoryImplementation=null, properties={}, initialLoadMode=LAZY, writeCoalescing=true}, mergePolicyConfig=MergePolicyConfig{policy='com.hazelcast.spi.merge.PutIfAbsentMergePolicy', batchSize=100}, wanReplicationRef=WanReplicationRef{name='name', mergePolicy='foo.bar.PolicyClass', filters='[]', republishingEnabled='true'}, entryListenerConfigs=[EntryListenerConfig{local=true, includeValue=true}, EntryListenerConfig{local=true, includeValue=true}, EntryListenerConfig{local=true, includeValue=true}], mapIndexConfigs=[MapIndexConfig{attribute='orderAttribute', ordered=true}, MapIndexConfig{attribute='unorderedAttribute', ordered=false}], mapAttributeConfigs=[MapAttributeConfig{name='attribute'extractor='foo.bar.ExtractorClass'}], quorumName=quorum, queryCacheConfigs=[QueryCacheConfig{batchSize=100, bufferSize=16, delaySeconds=0, includeValue=true, populate=true, coalesce=false, inMemoryFormat=OBJECT, name='queryCacheName', predicateConfig=PredicateConfig{className='null', sql='null', implementation=null}, evictionConfig=EvictionConfig{size=10000, maxSizePolicy=ENTRY_COUNT, evictionPolicy=LRU, comparatorClassName=null, comparator=null}, entryListenerConfigs=[EntryListenerConfig{local=false, includeValue=true}], indexConfigs=[MapIndexConfig{attribute='attribute', ordered=false}]}], cacheDeserializedValues=ALWAYS}>
	at org.junit.Assert.fail(Assert.java:88)
	at org.junit.Assert.failNotEquals(Assert.java:834)
	at org.junit.Assert.assertEquals(Assert.java:118)
	at org.junit.Assert.assertEquals(Assert.java:144)
	at com.hazelcast.internal.dynamicconfig.DynamicConfigBouncingTest.doNotThrowExceptionWhenMemberIsGone(DynamicConfigBouncingTest.java:80)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:90)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:55)
	at java.lang.reflect.Method.invoke(Method.java:508)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at com.hazelcast.test.FailOnTimeoutStatement$CallableStatement.call(FailOnTimeoutStatement.java:114)
	at com.hazelcast.test.FailOnTimeoutStatement$CallableStatement.call(FailOnTimeoutStatement.java:106)
	at java.util.concurrent.FutureTask.run(FutureTask.java:277)
	at java.lang.Thread.run(Thread.java:811)
@lazerion lazerion added this to the 3.12.3 milestone Jul 28, 2019
@vbekiaris vbekiaris self-assigned this Jul 29, 2019
@vbekiaris vbekiaris changed the title DynamicConfigBouncingTest failures Dynamic MapConfig from client side does not respect some options Jul 30, 2019
@vbekiaris

This comment has been minimized.

Copy link
Contributor

@vbekiaris vbekiaris commented Jul 30, 2019

Since #15366 client module was merged to core, the BounceMemberRule executes tests with a client-side HazelcastInstance as test driver, unless a driver type is explicitly configured. This change revealed an issue with dynamically added MapConfigs from client side.

Created #15393 to make sure all bouncing tests are reviewed

@lazerion lazerion modified the milestones: 3.12.3, 4.0 Jul 31, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
2 participants
You can’t perform that action at this time.