[
https://issues.apache.org/jira/browse/IGNITE-14898?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Ilya Korol resolved IGNITE-14898.
---------------------------------
Resolution: Duplicate
> IndexOutOfBoundException in flusher selection logic in
> GridCacheWriteBehindStore
> --------------------------------------------------------------------------------
>
> Key: IGNITE-14898
> URL: https://issues.apache.org/jira/browse/IGNITE-14898
> Project: Ignite
> Issue Type: Bug
> Components: general
> Affects Versions: 2.10
> Reporter: Ilya Korol
> Assignee: Ilya Korol
> Priority: Major
>
> There i a bug in GridCacheWriteBehindStore method for selecting which flusher
> should be used for current data write by specified key:
> {code:java}
> /**
> * Return flusher by by key.
> *
> * @param key Key for search.
> * @return flusher.
> */
> private Flusher flusher(K key) {
> int h, idx;
> if (flushThreadCntIsPowerOfTwo)
> idx = ((h = key.hashCode()) ^ (h >>> 16)) & (flushThreadCnt - 1);
> else
> idx = ((h = key.hashCode()) ^ (h >>> 16)) % flushThreadCnt;
> return flushThreads[idx];
> }
> {code}
> In case when flushThreadCount is not a power of 2 and incoming key.hashCode()
> < 0 (e.g. for UUID string) we will get IndexOutOfBoundException.
> http://apache-ignite-users.70518.x6.nabble.com/Bug-in-GridCacheWriteBehindStore-td36189.html
--
This message was sent by Atlassian Jira
(v8.3.4#803005)