You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pig.apache.org by "Travis Woodruff (JIRA)" <ji...@apache.org> on 2014/06/06 19:42:02 UTC

[jira] [Commented] (PIG-3988) PigStorage: CommandLineParser is not thread safe

    [ https://issues.apache.org/jira/browse/PIG-3988?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14020113#comment-14020113 ] 

Travis Woodruff commented on PIG-3988:
--------------------------------------

This patch moves the option parsing members to local variables in the constructor, since that's the only place they're used. Since the CommandLineParser is no longer static, access by multiple threads is no longer an issue.

It also removes use of the OptionBuilder class and configures the Option via setters instead.


> PigStorage: CommandLineParser is not thread safe
> ------------------------------------------------
>
>                 Key: PIG-3988
>                 URL: https://issues.apache.org/jira/browse/PIG-3988
>             Project: Pig
>          Issue Type: Bug
>    Affects Versions: 0.13.0
>            Reporter: Travis Woodruff
>            Assignee: Travis Woodruff
>            Priority: Minor
>             Fix For: 0.13.0
>
>         Attachments: PIG-3988-1.patch
>
>
> PigStorage uses commons-cli to parse options. The CommandLineParser is stored as a static member. This can cause issues when two threads instantiate PigStorage at the same time, since CommandLineParser stores state in a non-thread-safe way.
> OptionBuilder, used in populateValidOptions(), is also not thread safe, as it stores its state in static members.



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