[
https://issues.apache.org/jira/browse/HADOOP-10826?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14062383#comment-14062383
]
Benoy Antony commented on HADOOP-10826:
---------------------------------------
This is currently invoked from {{KeyShell}} as well as {{KMSWebApp}}. Even if
these are not multi threaded cases, it may a good idea to synchronize the
iteration on {{serviceLoader}} as multi threaded calls may be added in future
without realizing the underlying thread-unsafety.
> Iteration on KeyProviderFactory.serviceLoader is thread-unsafe
> ---------------------------------------------------------------
>
> Key: HADOOP-10826
> URL: https://issues.apache.org/jira/browse/HADOOP-10826
> Project: Hadoop Common
> Issue Type: Improvement
> Components: security
> Reporter: Benoy Antony
> Assignee: Benoy Antony
> Attachments: HADOOP-10826.patch
>
>
> KeyProviderFactory uses _ServiceLoader_ framework to load _KeyProviderFactory_
> {code}
> private static final ServiceLoader<KeyProviderFactory> serviceLoader =
> ServiceLoader.load(KeyProviderFactory.class);
> {code}
> The _ServiceLoader_ framework does lazy initialization of services which
> makes it thread unsafe. If accessed from multiple threads, it is better to
> synchronize the access.
> Similar synchronization has been done while loading compression codec
> providers via HADOOP-8406.
--
This message was sent by Atlassian JIRA
(v6.2#6252)