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: [email protected]
For additional commands, e-mail: [email protected]