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

Tsuyoshi OZAWA updated HADOOP-10436:
------------------------------------

    Attachment: HADOOP-10436.1.patch

Made buildGeneralOptions synchronized.
OptionBuilder is a part or o.a.commons.cli, so we should avoid this problem at 
GenericOptionsParser#buildGeneralOptions. 

> ToolRunner is not thread-safe
> -----------------------------
>
>                 Key: HADOOP-10436
>                 URL: https://issues.apache.org/jira/browse/HADOOP-10436
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: util
>            Reporter: Ajay Chitre
>            Assignee: Tsuyoshi OZAWA
>         Attachments: HADOOP-10436.1.patch
>
>
> ToolRunner class is not thread-safe because it uses GenericOptionsParser.  
> The constructor of GenericOptionsParser uses 'OptionBuilder' which is a 
> singleton class that uses instance variables.  In other words, OptionBuilder 
> is NOT thread safe.  As a result, when multiple Hadoop jobs are triggered 
> simultaneously using ToolRunner they end up stepping on each other.
> The easiest way to fix it is by making 'buildGeneralOptions' synchronized in 
> GenericOptionsParser.
> private static synchronized Options buildGeneralOptions(Options opts) {
> If this seems like the correct way of fixing this, either we can provide a 
> patch or someone can quickly fix it.  Thanks.
> Ajay Chitre
> [email protected]
> Virendra Singh
> [email protected]



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to