Details
Description
There's a bug in GridCacheWriteBehindStore in the flusher method.
The logic states there that if flush thread count is not a power of 2, then perform this math, which is not guaranteed to return a positive number.
idx = ((h = key.hashCode()) ^ (h >>> 16)) % flushThreadCnt
For example, if you pass this string as a key, it returns a negative number:
accb2e8ea33e4a89b4189463cacc3c4e
and then throws an array out of bounds exception when looking up the thread.
Attachments
Issue Links
- is duplicated by
-
IGNITE-14892 Bug in GridCacheWriteBehindStore Flusher thread lookup
- Resolved
-
IGNITE-14898 IndexOutOfBoundException in flusher selection logic in GridCacheWriteBehindStore
- Resolved
- links to