You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@hama.apache.org by "JongYoon Lim (JIRA)" <ji...@apache.org> on 2015/08/28 10:47:45 UTC
[jira] [Created] (HAMA-971) An increment to a volatile field isn't
atomic
JongYoon Lim created HAMA-971:
---------------------------------
Summary: An increment to a volatile field isn't atomic
Key: HAMA-971
URL: https://issues.apache.org/jira/browse/HAMA-971
Project: Hama
Issue Type: Bug
Components: bsp core
Reporter: JongYoon Lim
Priority: Minor
I found a defect from FindBugs Analysis.
{code}
// AsyncRcvdMsgCheckpointImpl.java
volatile private long checkpointMessageCount;
...
++checkpointMessageCount;
{code}
{code}
// Server.java
private volatile int rpcCount = 0; // number of outstanding rpcs
...
rpcCount--;
rpcCount++;
{code}
This code increments a volatile field. Increments of volatile fields aren't atomic. If more than one thread is incrementing the field at the same time, increments could be lost.
I think *AtomicInteger* and *AtomicLong* can be used instead of volatile fields.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)