Jason Huynh created GEODE-966:
---------------------------------
Summary: HashIndex with Overflow region detection/conversion needs
to occur sooner
Key: GEODE-966
URL: https://issues.apache.org/jira/browse/GEODE-966
Project: Geode
Issue Type: Bug
Components: querying
Reporter: Jason Huynh
We maintain a map of indexes in the index manager, where the indexTask is the
key and the FutureTask or Index is the value.
At the same time we convert hash indexes to compact range indexes when used for
overflow regions.
At the first pass, say a process creates hash index task (TASK1) and stuffs the
future task into the map.
At some future time, (before the hash index future task completes) another
index task (TASK2) comes in with the same expression
When the hash index task completes, it does an indexes.put(index task, index).
This put uses the equals method of the index task which has multiple stages. It
first matches by name, then has a short circuit to detect if this is an index
lookup and then it matches by index expression. Because we have changed the
actual index type of the hash index to that of a functional index for overflow
regions, this put will actually match TASK2 depending on the order in which we
traverse the map keys (possibly related to why we didn't see this problem pre
1.8?)
We end up with a map where the TASK1 still maps to a future task and get this
weird behavior.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)