You are viewing a plain text version of this content. The canonical link for it is here.
Posted to mapreduce-issues@hadoop.apache.org by "Ivo Udelsmann (JIRA)" <ji...@apache.org> on 2015/09/29 21:31:05 UTC

[jira] [Updated] (MAPREDUCE-6467) Submitting streaming job is not thread safe

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

Ivo Udelsmann updated MAPREDUCE-6467:
-------------------------------------
    Attachment: MAPREDUCE-6467.001.patch

I decided to update Commons CLI to version to 1.3 as it's should be a better long term approach.

In this patch I only update commons CLI and fix the reported methods.

This are privated methods, thus no new unit test were made, I however, tested it by submitting a streaming job with different arguments to verify the behavior is still the expected one.

This patch adds many javac warnings as many classes are now deprecated, it shouldn't however, cause any regression bugs. I did not fix the warnings to avoid creating a big and complex patch, hard to review.

Please review and advise on any change you would recommend, I'll gladly alter anything.

If updating commons CLI is considered a bad approach, I may submit the recommended workaround using Option constructor (I created a patch for it too).

Thank you.

> Submitting streaming job is not thread safe
> -------------------------------------------
>
>                 Key: MAPREDUCE-6467
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-6467
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>          Components: job submission
>    Affects Versions: 2.7.1
>            Reporter: jeremie simon
>            Assignee: Ivo Udelsmann
>            Priority: Minor
>              Labels: easyfix, streaming, thread-safety
>         Attachments: MAPREDUCE-6467.001.patch
>
>
> The submission of the streaming job is not thread safe. 
> That is because the class StreamJob is using the OptionBuilder which is itself not thread safe. 
> This can cause super tricky bugs. 
> An easy fix would be to simply create instances of Option through the normal constructor and decorate the object if necessary. 
> This fix should be applied on the functions createOption and createBoolOption. 



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)