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

Colin Patrick McCabe commented on HADOOP-11127:
-----------------------------------------------

Hi [~alanburlison],

Thanks for posting your proposal in proposal.txt.  Let me take a look:

I don't view option #3 (Bundle the JNI component inside the JAR alongside the 
Java component and distribute that as part of the jobs) as unworkable.  If the 
cluster contains multiple different platforms, we can have code that selects 
the correct one.  I also feel that this use case is extremely, extremely rare 
(to the point where I've never actually seen it, and I doubt anyone here has 
either).  We could certainly have an escape valve just for this case where we 
look for a system {{libhadoop.so}}.  However, this is something we could 
consider later.

Versioning: I agree that internal versioning is overly complex for what we 
need.  As you mention, the version suffixes on libraries are not supported by 
{{java.lang.System.loadLibrary}}, so we can't use that.  I think the proposal 
for forming a composite name is very reasonable.

+1 for the proposal in proposal.txt.

> Improve versioning and compatibility support in native library for downstream 
> hadoop-common users.
> --------------------------------------------------------------------------------------------------
>
>                 Key: HADOOP-11127
>                 URL: https://issues.apache.org/jira/browse/HADOOP-11127
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: native
>            Reporter: Chris Nauroth
>            Assignee: Alan Burlison
>         Attachments: HADOOP-11064.003.patch, proposal.txt
>
>
> There is no compatibility policy enforced on the JNI function signatures 
> implemented in the native library.  This library typically is deployed to all 
> nodes in a cluster, built from a specific source code version.  However, 
> downstream applications that want to run in that cluster might choose to 
> bundle a hadoop-common jar at a different version.  Since there is no 
> compatibility policy, this can cause link errors at runtime when the native 
> function signatures expected by hadoop-common.jar do not exist in 
> libhadoop.so/hadoop.dll.



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

Reply via email to