You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by zh...@apache.org on 2015/01/30 22:43:53 UTC

[9/9] hadoop git commit: HADOOP-11403. Avoid using sys_errlist on Solaris, which lacks support for it (Malcolm Kavalsky via Colin P. McCabe)

HADOOP-11403. Avoid using sys_errlist on Solaris, which lacks support for it (Malcolm Kavalsky via Colin P. McCabe)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/8de7e21d
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/8de7e21d
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/8de7e21d

Branch: refs/heads/HDFS-EC
Commit: 8de7e21d52b1853d54b49c9a01e30e0c1c3bf554
Parents: a38ace1
Author: Colin Patrick Mccabe <cm...@cloudera.com>
Authored: Thu Jan 29 15:43:57 2015 -0800
Committer: Zhe Zhang <zh...@apache.org>
Committed: Fri Jan 30 13:42:05 2015 -0800

----------------------------------------------------------------------
 hadoop-common-project/hadoop-common/CHANGES.txt          |  3 +++
 .../hadoop-common/src/main/native/src/exception.c        |  6 ++++++
 .../native/src/org/apache/hadoop/io/nativeio/NativeIO.c  |  7 ++-----
 .../src/contrib/libwebhdfs/src/hdfs_http_client.c        | 11 ++---------
 4 files changed, 13 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/8de7e21d/hadoop-common-project/hadoop-common/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/CHANGES.txt b/hadoop-common-project/hadoop-common/CHANGES.txt
index cc254e0..c71d35a 100644
--- a/hadoop-common-project/hadoop-common/CHANGES.txt
+++ b/hadoop-common-project/hadoop-common/CHANGES.txt
@@ -794,6 +794,9 @@ Release 2.7.0 - UNRELEASED
     HADOOP-9907. Webapp http://hostname:port/metrics link is not working.
     (aajisaka)
 
+    HADOOP-11403. Avoid using sys_errlist on Solaris, which lacks support for it
+    (Malcolm Kavalsky via Colin P. McCabe)
+
 Release 2.6.1 - UNRELEASED
 
   INCOMPATIBLE CHANGES

http://git-wip-us.apache.org/repos/asf/hadoop/blob/8de7e21d/hadoop-common-project/hadoop-common/src/main/native/src/exception.c
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/main/native/src/exception.c b/hadoop-common-project/hadoop-common/src/main/native/src/exception.c
index 228af11..fc072e8 100644
--- a/hadoop-common-project/hadoop-common/src/main/native/src/exception.c
+++ b/hadoop-common-project/hadoop-common/src/main/native/src/exception.c
@@ -110,9 +110,15 @@ jthrowable newIOException(JNIEnv* env, const char *fmt, ...)
 
 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
 }
 

http://git-wip-us.apache.org/repos/asf/hadoop/blob/8de7e21d/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/io/nativeio/NativeIO.c
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/io/nativeio/NativeIO.c b/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/io/nativeio/NativeIO.c
index d7f8d4b..071d830 100644
--- a/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/io/nativeio/NativeIO.c
+++ b/hadoop-common-project/hadoop-common/src/main/native/src/org/apache/hadoop/io/nativeio/NativeIO.c
@@ -19,6 +19,7 @@
 #include "org_apache_hadoop.h"
 #include "org_apache_hadoop_io_nativeio_NativeIO.h"
 #include "org_apache_hadoop_io_nativeio_NativeIO_POSIX.h"
+#include "exception.h"
 
 #ifdef UNIX
 #include <assert.h>
@@ -893,11 +894,7 @@ void throw_ioe(JNIEnv* env, int errnum)
   char message[80];
   jstring jstr_message;
 
-  if ((errnum >= 0) && (errnum < sys_nerr)) {
-    snprintf(message, sizeof(message), "%s", sys_errlist[errnum]);
-  } else {
-    snprintf(message, sizeof(message), "Unknown error %d", errnum);
-  }
+  snprintf(message,sizeof(message),"%s",terror(errnum));
 
   jobject errno_obj = errno_to_enum(env, errnum);
 

http://git-wip-us.apache.org/repos/asf/hadoop/blob/8de7e21d/hadoop-hdfs-project/hadoop-hdfs/src/contrib/libwebhdfs/src/hdfs_http_client.c
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/contrib/libwebhdfs/src/hdfs_http_client.c b/hadoop-hdfs-project/hadoop-hdfs/src/contrib/libwebhdfs/src/hdfs_http_client.c
index e41f950..dc58318 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/contrib/libwebhdfs/src/hdfs_http_client.c
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/contrib/libwebhdfs/src/hdfs_http_client.c
@@ -21,21 +21,14 @@
 #include <curl/curl.h>
 
 #include "hdfs_http_client.h"
+#include "exception.h"
 
 static pthread_mutex_t curlInitMutex = PTHREAD_MUTEX_INITIALIZER;
 static volatile int curlGlobalInited = 0;
 
 const char *hdfs_strerror(int errnoval)
 {
-    const char *msg = NULL;
-    if (errnoval < 0 || errnoval >= sys_nerr) {
-        msg = "Invalid Error Code";
-    } else if (sys_errlist == NULL) {
-        msg = "Unknown Error";
-    } else {
-        msg = sys_errlist[errnoval];
-    }
-    return msg;
+  return terror(errnoval);
 }
 
 int initResponseBuffer(struct ResponseBuffer **buffer)