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