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 "Alan Burlison (JIRA)" <ji...@apache.org> on 2015/05/07 23:57:01 UTC

[jira] [Commented] (HADOOP-7824) Native IO uses wrong constants almost everywhere

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

Alan Burlison commented on HADOOP-7824:
---------------------------------------

I've prototyped an alternate fix for this, which is to remove 'final' from the public static members used to hold the various O_ constants defined in NativeIO.java but otherwise to leave them alone, then use a JNI_OnLoad hook to update the values of the public static members to the correct platform-specific values. Looking at the classfile disassembly it will be slightly slower than at present - the existing public static final members are inlined to either sipush or ldc of the appropriate constant values whereas if the final modifier is removed (needed to prevent the inlining) then getstatic is used to fetch the value. However it should still be significantly faster than the string-based approach suggested in the latest patch attached to this bug. If this approach is acceptable please let me know and I'll get a patch sorted out.

I'm specifically interested in fixing this for Solaris but it should work on all platforms.

> Native IO uses wrong constants almost everywhere
> ------------------------------------------------
>
>                 Key: HADOOP-7824
>                 URL: https://issues.apache.org/jira/browse/HADOOP-7824
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: native
>    Affects Versions: 0.20.204.0, 0.20.205.0, 1.0.3, 0.23.0, 2.0.0-alpha, 3.0.0
>         Environment: Mac OS X, Linux, Solaris, Windows, ... 
>            Reporter: Dmytro Shteflyuk
>            Assignee: Todd Lipcon
>              Labels: hadoop
>         Attachments: HADOOP-7824.patch, HADOOP-7824.patch, hadoop-7824.txt
>
>
> Constants like O_CREAT, O_EXCL, etc. have different values on OS X and many other operating systems.



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