Apache Geode - Stuck on Recovering Index on Network Drop

15 Views Asked by At

We are in the process of migrating from Gemfire to Geode. Since moving some services to Geode we have found that if we have a network drop between a gemfire client and server then the recovery process never completes. It seems to enter a loop of recovering indexes which takes long enough that the socket seems to be reset and the process is repeated.

[email protected]/java.util.concurrent.ConcurrentSkipListMap$Iter.advance(ConcurrentSkipListMap.java:2100)
[email protected]/java.util.concurrent.ConcurrentSkipListMap$EntryIterator.next(ConcurrentSkipListMap.java:2147)
[email protected]/java.util.concurrent.ConcurrentSkipListMap$EntryIterator.next(ConcurrentSkipListMap.java:2140)
org.apache.geode.cache.query.internal.index.MemoryIndexStore.getOldKey(MemoryIndexStore.java:264)
org.apache.geode.cache.query.internal.index.MemoryIndexStore.updateMapping(MemoryIndexStore.java:122)
org.apache.geode.cache.query.internal.index.CompactRangeIndex$IMQEvaluator.applyProjection(CompactRangeIndex.java:1593)
org.apache.geode.cache.query.internal.index.CompactRangeIndex$IMQEvaluator.doNestedIterations(CompactRangeIndex.java:1538)
org.apache.geode.cache.query.internal.index.CompactRangeIndex$IMQEvaluator.doNestedIterations(CompactRangeIndex.java:1549)
org.apache.geode.cache.query.internal.index.CompactRangeIndex$IMQEvaluator.evaluate(CompactRangeIndex.java:1400)
org.apache.geode.cache.query.internal.index.CompactRangeIndex.addMapping(CompactRangeIndex.java:145)
org.apache.geode.cache.query.internal.index.AbstractIndex.addIndexMapping(AbstractIndex.java:489)
org.apache.geode.cache.query.internal.index.IndexManager.addIndexMapping(IndexManager.java:1153)
org.apache.geode.cache.query.internal.index.IndexManager.processAction(IndexManager.java:1097)
org.apache.geode.cache.query.internal.index.IndexManager.updateIndexes(IndexManager.java:986)
org.apache.geode.cache.query.internal.index.IndexManager.updateIndexes(IndexManager.java:960)
org.apache.geode.internal.cache.AbstractRegionMap.initialImagePut(AbstractRegionMap.java:868)
org.apache.geode.internal.cache.LocalRegion.refreshEntriesFromServerKeys(LocalRegion.java:4309)
org.apache.geode.cache.client.internal.RegisterInterestOp$RegisterInterestOpImpl.processResponse(RegisterInterestOp.java:204)
org.apache.geode.cache.client.internal.AbstractOp.attemptReadResponse(AbstractOp.java:197)
org.apache.geode.cache.client.internal.AbstractOp.attempt(AbstractOp.java:384)
org.apache.geode.cache.client.internal.ConnectionImpl.execute(ConnectionImpl.java:284)
org.apache.geode.cache.client.internal.QueueConnectionImpl.execute(QueueConnectionImpl.java:191)
org.apache.geode.cache.client.internal.OpExecutorImpl.executeWithPossibleReAuthentication(OpExecutorImpl.java:756)
org.apache.geode.cache.client.internal.OpExecutorImpl.executeOn(OpExecutorImpl.java:480)
org.apache.geode.cache.client.internal.OpExecutorImpl.executeOn(OpExecutorImpl.java:493)
org.apache.geode.cache.client.internal.PoolImpl.executeOn(PoolImpl.java:855)
org.apache.geode.cache.client.internal.RegisterInterestOp.executeOn(RegisterInterestOp.java:103)
org.apache.geode.cache.client.internal.ServerRegionProxy.registerInterestOn(ServerRegionProxy.java:496)
org.apache.geode.cache.client.internal.QueueManagerImpl.recoverSingleKey(QueueManagerImpl.java:1209)
org.apache.geode.cache.client.internal.QueueManagerImpl.recoverSingleRegion(QueueManagerImpl.java:1158)
org.apache.geode.cache.client.internal.QueueManagerImpl.recoverSingleList(QueueManagerImpl.java:1103)
org.apache.geode.cache.client.internal.QueueManagerImpl.recoverInterestList(QueueManagerImpl.java:1223)
org.apache.geode.cache.client.internal.QueueManagerImpl.recoverAllInterestTypes(QueueManagerImpl.java:1237)
org.apache.geode.cache.client.internal.QueueManagerImpl.recoverInterest(QueueManagerImpl.java:1069)
org.apache.geode.cache.client.internal.QueueManagerImpl.recoverPrimary(QueueManagerImpl.java:928)
org.apache.geode.cache.client.internal.QueueManagerImpl.access$600(QueueManagerImpl.java:77)
org.apache.geode.cache.client.internal.QueueManagerImpl$RedundancySatisfierTask.run2(QueueManagerImpl.java:1448)
org.apache.geode.cache.client.internal.PoolImpl$PoolTask.run(PoolImpl.java:1334)
[email protected]/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
[email protected]/java.util.concurrent.FutureTask.run(FutureTask.java:264)

Restarting the client recovers this issue as a fresh mirror of the regions and indexes loads quickly.

0

There are 0 best solutions below