[
https://issues.apache.org/jira/browse/YARN-10064?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17004433#comment-17004433
]
Roman Leventov commented on YARN-10064:
---
If somebody wants to explore similar issues: I checked the production classes
on the first page or this Github search:
[https://github.com/apache/hadoop/search?p=1=synchronizedMap_q=synchronizedMap]
and didn't found similar problems in classes other than AuxServices. I didn't
check the 2nd and 3rd page or results though, neither did I search for
synchronizedList, synchronizedSet, synchronizedSortedMap, etc.
> Potential race conditions in AuxServices
>
>
> Key: YARN-10064
> URL: https://issues.apache.org/jira/browse/YARN-10064
> Project: Hadoop YARN
> Issue Type: Bug
>Reporter: Roman Leventov
>Priority: Major
>
> There are three places in {{AuxServices}} class that may potentially cause
> race conditions: {{getServices()}}, {{getServiceRecords()}},
> {{handle(AuxServicesEvent event)}}. In the first two methods, synchronized
> collections are returned from the API. If they are iterated concurrently with
> the underlying collections being updated inside {{AuxServices}},
> non-deterministic behavior may follow.
> In {{handle(AuxServicesEvent event)}}, {{serviceMap.values()}} is actually
> iterated outside of a critical section on {{serviceMap}} object, though it's
> unclear from the class itself whether handle() may be called concurrently
> with the methods on {{AuxServices}} that modify {{serviceMap}} or not. So if
> this not a bug, adding a comment explaining this would be helpful.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
-
To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org
For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org