You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-issues@hadoop.apache.org by "Yitong Zhou (JIRA)" <ji...@apache.org> on 2014/10/18 03:13:33 UTC

[jira] [Commented] (HADOOP-11211) mapreduce.job.classloader.system.classes property behave differently when the exclusion and inclusion order is differnt

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

Yitong Zhou commented on HADOOP-11211:
--------------------------------------

I'm thinking about change the return first match logic to an "AND" logic.

In this way, if a class name matches both a positive pattern and a negative pattern, that class will still be excluded.

For example settings like:
mapreduce.job.classloader.system.classes=-foo.bar.tar.,foo.bar.
and mapreduce.job.classloader.system.classes=foo.bar.,-foo.bar.tar.

Should behave as including all foo.bar.* classes into system classes other than foo.bar.tar.* classes. 

And if we see mapreduce.job.classloader.system.classes=foo.bar.,-foo.bar, we end up not including foo.bar in this logic.

Could anyone point out whether this makes sense?

> mapreduce.job.classloader.system.classes property behave differently when the exclusion and inclusion order is differnt
> -----------------------------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-11211
>                 URL: https://issues.apache.org/jira/browse/HADOOP-11211
>             Project: Hadoop Common
>          Issue Type: Bug
>            Reporter: Yitong Zhou
>            Assignee: Yitong Zhou
>
> If we want to include package foo.bar.* but exclude all sub packages named foo.bar.tar.* in system classes, configuring "mapreduce.job.classloader.system.classes=foo.bar.,-foo.bar.tar." won't work. foo.bar.tar will still be pulled in. But if we change the order:
> "mapreduce.job.classloader.system.classes=-foo.bar.tar.,foo.bar.", then it will work.
> This bug is due to the implementation of ApplicationClassLoaser#isSystemClass in hadoop-common, where we simply return the matching result immediately when the class name hits the first match (either positive or negative).



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