Viacheslav Blinov created IGNITE-21694:
------------------------------------------

             Summary: HeapLockManager/HeapUnboundedLockManager makes 
inefficient use of keySet iterator instead of entrySet iterator
                 Key: IGNITE-21694
                 URL: https://issues.apache.org/jira/browse/IGNITE-21694
             Project: Ignite
          Issue Type: Bug
            Reporter: Viacheslav Blinov


Issue detected by SpotBugs. Specifically the warning reported is:
{noformat}
H M VO_VOLATILE_INCREMENT VO: Increment of volatile field 
org.apache.ignite.internal.tx.impl.TxManagerImpl$TxContext.inflights in 
org.apache.ignite.internal.tx.impl.TxManagerImpl.lambda$addInflight$21(boolean[],
 UUID, TxManagerImpl$TxContext)  At TxManagerImpl.java:[line 843]
H M VO_VOLATILE_INCREMENT VO: Increment of volatile field 
org.apache.ignite.internal.tx.impl.TxManagerImpl$TxContext.inflights in 
org.apache.ignite.internal.tx.impl.TxManagerImpl.lambda$removeInflight$22(UUID, 
TxManagerImpl$TxContext)  At TxManagerImpl.java:[line 858]
{noformat}

Increments/Decrements of volatile fields aren't atomic. If more than one thread 
is incrementing/decrementing the field at the same time, increments/decrements 
could be lost.

Investigate whenever this is a false-positive and we should suppress it, or we 
should make a proper fix.
At the result of investigation corresponding TODO should be removed in 
spotbugs-excludes.xml



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to