Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
1.6.0, 1.7.0
-
None
Description
When attempting to add an OQL Index to a Region with existing data, containing entries that have been invalidated, and when the JVM's assertion facility is enabled (i.e. java -ea ...), then Geode will throw a AssertionError:
[error 2018/11/15 11:41:35.218 PST <main> tid=0x1] Application run failed
org.springframework.context.ApplicationContextException: Failed to start bean 'ClusteredSpringSessions'; nested exception is java.lang.AssertionError: value in RegionEntry should not be INVALID
at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:185)
at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:53)
at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:360)
at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:158)
at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:122)
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:879)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.finishRefresh(ServletWebServerApplicationContext.java:161)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:549)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:316)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248)
at example.app.ConcurrentHttpSessionAccessExampleApplication.main(ConcurrentHttpSessionAccessExampleApplication.java:71)
Caused by: java.lang.AssertionError: value in RegionEntry should not be INVALID
at org.apache.geode.cache.query.internal.index.HashIndex$IMQEvaluator.evaluate(HashIndex.java:1049)
at org.apache.geode.cache.query.internal.index.HashIndex.addMapping(HashIndex.java:177)
at org.apache.geode.cache.query.internal.index.AbstractIndex.addIndexMapping(AbstractIndex.java:489)
at org.apache.geode.cache.query.internal.index.IndexManager.addIndexMapping(IndexManager.java:1159)
at org.apache.geode.cache.query.internal.index.IndexManager.processAction(IndexManager.java:1103)
at org.apache.geode.cache.query.internal.index.IndexManager.updateIndexes(IndexManager.java:992)
at org.apache.geode.cache.query.internal.index.IndexManager.updateIndexes(IndexManager.java:967)
at org.apache.geode.internal.cache.AbstractRegionMap.initialImagePut(AbstractRegionMap.java:1032)
at org.apache.geode.internal.cache.LocalRegion.refreshEntriesFromServerKeys(LocalRegion.java:4277)
at org.apache.geode.internal.cache.LocalRegion.processSingleInterest(LocalRegion.java:3798)
at org.apache.geode.internal.cache.LocalRegion.registerInterest(LocalRegion.java:3851)
at org.springframework.data.gemfire.client.ClientRegionFactoryBean.lambda$registerInterests$9(ClientRegionFactoryBean.java:425)
at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
at org.springframework.data.gemfire.client.ClientRegionFactoryBean.registerInterests(ClientRegionFactoryBean.java:418)
at org.springframework.data.gemfire.client.ClientRegionFactoryBean.start(ClientRegionFactoryBean.java:412)
at java.util.Optional.ifPresent(Optional.java:159)
at org.springframework.data.gemfire.config.annotation.support.CacheTypeAwareRegionFactoryBean.start(CacheTypeAwareRegionFactoryBean.java:538)
at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:182)
... 14 more
This error seems mostly benign and when you disable Java assertions (i.e. do not include the -ea switch to the java launcher when starting the server, all is well.