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

Koji Noguchi updated HADOOP-2880:
---------------------------------

    Fix Version/s:     (was: 0.17.0)
                   0.18.0

I'm setting to 0.18.  

This probably needs to be discussed by the libhdfs users.  
I believe we should introduce HADOOP_O_RDONLY/HADOOP_O_WRONLY  and disable 
O_RDONLY/WRONLY by returning an error if passed.

A little background.

{noformat} 
#include "hdfs.h"
#include <fcntl.h>
...
    hdfsOpenFile(...,..., O_RDONLY) 
...
{noformat} 

would read the hdfs file correctly, but 

{noformat} 
#include <fcntl.h>
#include "hdfs.h"

...
    hdfsOpenFile(...,..., O_RDONLY) 
...
{noformat} 

would try to overwrite the file.

> libhdfs: O_WRONLY/O_RDONLY different when including fcntl.h
> -----------------------------------------------------------
>
>                 Key: HADOOP-2880
>                 URL: https://issues.apache.org/jira/browse/HADOOP-2880
>             Project: Hadoop Core
>          Issue Type: Bug
>          Components: libhdfs
>         Environment: linux
>            Reporter: Koji Noguchi
>            Priority: Blocker
>             Fix For: 0.18.0
>
>
> In hdfs.h, 
> #ifndef O_RDONLY
> #define O_RDONLY 1
> #endif
> #ifndef O_WRONLY
> #define O_WRONLY 2
> #endif
> but on linux, 
> $ grep "define O_RDONLY" /usr/include/*/*
> /usr/include/asm-i386/fcntl.h:#define O_RDONLY       00
> /usr/include/asm-x86_64/fcntl.h:#define O_RDONLY             00
> /usr/include/bits/fcntl.h:#define O_RDONLY           00
> $ grep "define O_WRONLY" /usr/include/*/*
> /usr/include/asm-i386/fcntl.h:#define O_WRONLY       01
> /usr/include/asm-x86_64/fcntl.h:#define O_WRONLY             01
> /usr/include/bits/fcntl.h:#define O_WRONLY           01
> It took me a while to debug when hdfsOpenFile was trying to 'write' when I 
> meant 'read'.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to