[
https://issues.apache.org/jira/browse/YARN-5921?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15700069#comment-15700069
]
Naganarasimha G R commented on YARN-5921:
-----------------------------------------
Thanks [~varun_saxena] for the patch,
Yes the access to {{RMContextImpl.getHAServiceState()}} though done in multiple
places, it seems to be not as critical flows like Heartbeat, so though
initially offline i suggested to use RW locks, simple locking looks fine.
Overall patch LGTM, +1
> Incorrect synchronization in RMContextImpl#setHAServiceState/getHAServiceState
> ------------------------------------------------------------------------------
>
> Key: YARN-5921
> URL: https://issues.apache.org/jira/browse/YARN-5921
> Project: Hadoop YARN
> Issue Type: Bug
> Reporter: Varun Saxena
> Assignee: Varun Saxena
> Attachments: YARN-5921.01.patch, YARN-5921.02.patch
>
>
> Code in RMContextImpl is as under:
> {code:title=RMContextImpl.java|borderStyle=solid}
> void setHAServiceState(HAServiceState haServiceState) {
> synchronized (haServiceState) {
> this.haServiceState = haServiceState;
> }
> }
> public HAServiceState getHAServiceState() {
> synchronized (haServiceState) {
> return haServiceState;
> }
> }
> {code}
> As can be seen above, in setHAServiceState, we are synchronizing on the
> passed haServiceState instead of haServiceState in RMContextImpl which will
> not lead to desired effect. This does not seem to be intentional.
> We can use a RW lock or synchronize on some object here.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]