[ 
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)

Reply via email to