[ 
https://issues.apache.org/jira/browse/HADOOP-10829?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Benoy Antony updated HADOOP-10829:
----------------------------------

    Attachment: HADOOP-10829.patch

Attaching patch which uses static initializer to preload the services. This 
will avoid lazy loading and hence prevent the need for synchronization during 
iteration.
Similar approach was taken in HADOOP-10826.

> Iteration on CredentialProviderFactory.serviceLoader  is thread-unsafe
> ----------------------------------------------------------------------
>
>                 Key: HADOOP-10829
>                 URL: https://issues.apache.org/jira/browse/HADOOP-10829
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: security
>            Reporter: Benoy Antony
>            Assignee: Benoy Antony
>         Attachments: HADOOP-10829.patch, HADOOP-10829.patch
>
>
> CredentialProviderFactory uses _ServiceLoader_ framework to load 
> _CredentialProviderFactory_
> {code}
>   private static final ServiceLoader<CredentialProviderFactory> serviceLoader 
> =
>       ServiceLoader.load(CredentialProviderFactory.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