[ https://issues.apache.org/jira/browse/IGNITE-24223?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Vladislav Pyatkov updated IGNITE-24223: --------------------------------------- Description: h3. Motivation There is an invalid assert: {code:java|title=HeapLockManager.java} ... v = empty.poll(); if (v == null) { res[0] = slots[index]; assert !res[0].markedForRemove; ... {code} The propsal is invalid because after the empty slots queue is used, an empty slot might have appeared. The code takes a slot by the hash, and it can unintentionally take an empty one (opposite of the assertion). h3. Definition of done Fixed the branch where the empty slots queue returns {{null}}. was: h3. Motivation There is an invalid assert: {code:java|title=HeapLockManager.java} ... v = empty.poll(); if (v == null) { res[0] = slots[index]; assert !res[0].markedForRemove; ... {code} h3. Definition of done Fixed the branch where the empty slots queue returns {{null}}. > Heap lock manager can use empty slot not properly > ------------------------------------------------- > > Key: IGNITE-24223 > URL: https://issues.apache.org/jira/browse/IGNITE-24223 > Project: Ignite > Issue Type: Bug > Reporter: Vladislav Pyatkov > Priority: Major > Labels: ignite-3 > > h3. Motivation > There is an invalid assert: > {code:java|title=HeapLockManager.java} > ... > v = empty.poll(); > if (v == null) { > res[0] = slots[index]; > assert !res[0].markedForRemove; > ... > {code} > The propsal is invalid because after the empty slots queue is used, an empty > slot might have appeared. The code takes a slot by the hash, and it can > unintentionally take an empty one (opposite of the assertion). > h3. Definition of done > Fixed the branch where the empty slots queue returns {{null}}. -- This message was sent by Atlassian Jira (v8.20.10#820010)