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)): {code:java} 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. fprintf(stderr, "hdfsOpenFile(%s): WARN: Unexpected error %d when testing " "for direct read compatibility\n", path, errno); } } ret = 0; {code} 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 (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: hdfs-dev-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-dev-h...@hadoop.apache.org