meaningful errno values in libhdfs
----------------------------------
Key: HADOOP-3549
URL: https://issues.apache.org/jira/browse/HADOOP-3549
Project: Hadoop Core
Issue Type: Improvement
Components: libhdfs
Affects Versions: 0.17.0
Environment: any POSIX
Reporter: Ben Slusky
A comment near the top of hdfs.h says that "All APIs set errno to meaningful
values." Unfortunately this is a big fat lie -- bigger and fatter still now
that we have permissions in HDFS. If Hadoop throws an AccessControlException,
then libhdfs sets errno to EINTERNAL, even though this is not an "internal"
error in any sense of the word.
With the attached patches, allow libhdfs to derive a useful errno value when an
exception is thrown. I've implemented handling for AccessControlException and a
few others whose semantics seem obvious.
Tangential question: The signatures for invokeMethod() and
constructNewObjectOfClass() in hdfsJniHelper.h disagreed with their comments.
Was the "exc" argument of those functions removed in the past, or never
implemented? I (re)instated it in my patch.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.