hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Colin Patrick McCabe (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HDFS-7817) libhdfs3: fix strerror_r detection
Date Tue, 24 Feb 2015 02:40:12 GMT

    [ 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)

Mime
View raw message