[
https://issues.apache.org/jira/browse/HDFS-7817?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14334290#comment-14334290
]
Colin Patrick McCabe commented on HDFS-7817:
--------------------------------------------
{{hadoop-common-project/hadoop-common/src/main/native/src/exception.c}} has
this:
{code}
const char* terror(int errnum)
{
#if defined(__sun)
// MT-Safe under Solaris which doesn't support sys_errlist/sys_nerr
return strerror(errnum);
#else
if ((errnum < 0) || (errnum >= sys_nerr)) {
return "unknown error.";
}
return sys_errlist[errnum];
#endif
}
{code}
We could do something more clever with detecting POSIX {{strerror_r}}, but it's
kind of a pain and {{sys_errlist}} seems to work well.
> libhdfs3: fix strerror_r detection
> ----------------------------------
>
> Key: HDFS-7817
> URL: https://issues.apache.org/jira/browse/HDFS-7817
> Project: Hadoop HDFS
> Issue Type: Sub-task
> Components: hdfs-client
> Reporter: Colin Patrick McCabe
>
> The signature of strerror_r is not quite detected correctly in libhdfs3. The
> code assumes that {{int foo = strerror_r}} will fail to compile with the GNU
> type signature, but this is not the case (C\+\+ will coerce the char* to an
> int in this case). Instead, we should do what the libhdfs {{terror}}
> (threaded error) function does here.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)