[ https://issues.apache.org/jira/browse/GEODE-1944?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15531070#comment-15531070 ]
ASF subversion and git services commented on GEODE-1944: -------------------------------------------------------- Commit b5b7203a10c4d81f4ff8e9603b4c912413c0b91e in incubator-geode's branch refs/heads/develop from [~huynhja] [ https://git-wip-us.apache.org/repos/asf?p=incubator-geode.git;h=b5b7203 ] GEODE-1944: Reevaluation of index regionPath catches EntryDestroyedException * Force removal of region entry from index if entry destroyed exception is caught * Renamed and recategorized tests > Index with method invocation in regionPath can throw exception when > tombstones clean up during gii > -------------------------------------------------------------------------------------------------- > > Key: GEODE-1944 > URL: https://issues.apache.org/jira/browse/GEODE-1944 > Project: Geode > Issue Type: Bug > Components: querying > Reporter: Jason Huynh > Assignee: Jason Huynh > > When a system is recovering from disk and indexes are created from cache.xml > with certain region paths (say /region.entrySet()) and while recovering with > gii, tombstones are cleaned up, it is possible that an exception is thrown > from the index that prevents the system from recovering. This occurs when > gii forces old tombstones to be removed and invokes index maintenance. Index > maintenance, when trying to invoke the method on the region, will force the > code down a path that requires a .get(key) on the region. The value was > never present in the region and this causes an EntryDestroyedException to be > thrown. > A work around is to drop the indexes and recreate them after recovery. > The idea to try to prevent index maintenance if old value is not present does > not work because overflowed regions can have old value not present in memory. > The solution will be to put a try catch around the evaluate method in the > IMQEvaluator of the Compact and Hash indexes. Then force them to remove the > region entry by crawling the entire index. It will not be present in the > index for this specific case, but to be on the safe side, if the entry does > not exist in the region during maintenance, it probably should not exist in > the index any longer... -- This message was sent by Atlassian JIRA (v6.3.4#6332)