Xinyu Tan created RATIS-2049:
--------------------------------
Summary: Ensure atomic safety for volatile object
Key: RATIS-2049
URL: https://issues.apache.org/jira/browse/RATIS-2049
Project: Ratis
Issue Type: Improvement
Reporter: Xinyu Tan
Assignee: Xinyu Tan
Attachments: image-2024-03-22-17-00-53-814.png
Currently, there are about 40 bugs on Sonar for
[Ratis|[https://sonarcloud.io/summary/new_code?id=apache-ratis]], with more
than half of these issues stemming from the use of volatile fields to decorate
objects rather than primitive data types.
Theoretically, volatile is indeed intended for use with primitive data types
only, as decorating objects can lead to visibility issues. To avoid certain
concurrency problems, using AtomicReference is recommended. However, it seems
that for certain types of objects that are not modified, this usage does not
result in bugs?
I'm not sure what the Ratis community's stance is on this code style. If there
are confirmed rules and some code that could be optimized, I'm willing to
undertake these tasks to avoid potential concurrency issues and eliminate Sonar
bugs.
!image-2024-03-22-17-00-53-814.png!
[~szetszwo] What's your opinion?
--
This message was sent by Atlassian Jira
(v8.20.10#820010)