hadoop-hdfs-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sailesh Mukil (JIRA)" <j...@apache.org>
Subject [jira] [Created] (HDFS-10982) 'errno' set on successful code path in hdfsOpenFileImpl()
Date Fri, 07 Oct 2016 20:34:20 GMT
Sailesh Mukil created HDFS-10982:

             Summary: 'errno' set on successful code path in hdfsOpenFileImpl()
                 Key: HDFS-10982
                 URL: https://issues.apache.org/jira/browse/HDFS-10982
             Project: Hadoop HDFS
          Issue Type: Bug
          Components: libhdfs
    Affects Versions: 2.7.0
            Reporter: Sailesh Mukil

In hdfsOpenFileImpl() in libhdfs/hdfs.c, the following code is used to check if the underlying
FileSystem class supports direct reads (i.e. read(ByteBuffer)):

    if ((flags & O_WRONLY) == 0) {
        // Try a test read to see if we can do direct reads
        char buf;
        if (readDirect(fs, file, &buf, 0) == 0) {
            // Success - 0-byte read should return 0
            file->flags |= HDFS_FILE_SUPPORTS_DIRECT_READ;
        } else if (errno != ENOTSUP) {
            // Unexpected error. Clear it, don't set the direct flag.
                  "hdfsOpenFile(%s): WARN: Unexpected error %d when testing "
                  "for direct read compatibility\n", path, errno);
    ret = 0;

The S3A connector, specifically S3AInputStream does not support direct reads, and therefore
it sets 'errno = ENOTSUP' on a call to readDirect().

This 'errno' should be reset before returning the call because this is not an actual error
and we're okay with not having direct reads supported.

This message was sent by Atlassian JIRA

To unsubscribe, e-mail: hdfs-dev-unsubscribe@hadoop.apache.org
For additional commands, e-mail: hdfs-dev-help@hadoop.apache.org

View raw message