hadoop-common-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kih...@apache.org
Subject hadoop git commit: HDFS-9634. webhdfs client side exceptions don't provide enough details. Contributed by Eric Payne. (cherry picked from commit 7b70500484574a565dd8cd5c7d8b5bc7c6d91154)
Date Thu, 21 Jan 2016 15:34:19 GMT
Repository: hadoop
Updated Branches:
  refs/heads/branch-2.8 a02fab85e -> 67ba20e36


HDFS-9634. webhdfs client side exceptions don't provide enough details. Contributed by Eric
Payne.
(cherry picked from commit 7b70500484574a565dd8cd5c7d8b5bc7c6d91154)


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

Branch: refs/heads/branch-2.8
Commit: 67ba20e364f761b8d23fea8916f2f02572e14fa5
Parents: a02fab8
Author: Kihwal Lee <kihwal@apache.org>
Authored: Wed Jan 20 13:19:44 2016 -0600
Committer: Kihwal Lee <kihwal@apache.org>
Committed: Thu Jan 21 09:34:06 2016 -0600

----------------------------------------------------------------------
 .../apache/hadoop/hdfs/web/WebHdfsFileSystem.java  | 17 ++++++++++++++++-
 hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt        |  3 +++
 .../hadoop/hdfs/web/TestWebHdfsTimeouts.java       | 14 +++++++-------
 3 files changed, 26 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/67ba20e3/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/web/WebHdfsFileSystem.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/web/WebHdfsFileSystem.java
b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/web/WebHdfsFileSystem.java
index 096ba7b..cc22040 100644
--- a/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/web/WebHdfsFileSystem.java
+++ b/hadoop-hdfs-project/hadoop-hdfs-client/src/main/java/org/apache/hadoop/hdfs/web/WebHdfsFileSystem.java
@@ -24,6 +24,7 @@ import java.io.EOFException;
 import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
+import java.lang.reflect.InvocationTargetException;
 import java.net.HttpURLConnection;
 import java.net.InetSocketAddress;
 import java.net.MalformedURLException;
@@ -511,6 +512,7 @@ public class WebHdfsFileSystem extends FileSystem
         new ExcludeDatanodesParam("");
 
     private boolean checkRetry;
+    private String redirectHost;
 
     protected AbstractRunner(final HttpOpParam.Op op, boolean redirected) {
       this.op = op;
@@ -562,7 +564,7 @@ public class WebHdfsFileSystem extends FileSystem
      */
     protected HttpURLConnection connect(URL url) throws IOException {
       //redirect hostname and port
-      String redirectHost = null;
+      redirectHost = null;
 
 
       // resolve redirects for a DN operation unless already resolved
@@ -667,6 +669,19 @@ public class WebHdfsFileSystem extends FileSystem
             throw it;
           }
         } catch (IOException ioe) {
+          // Attempt to include the redirected node in the exception. If the
+          // attempt to recreate the exception fails, just use the original.
+          String node = redirectHost;
+          if (node == null) {
+            node = url.getAuthority();
+          }
+          try {
+              ioe = ioe.getClass().getConstructor(String.class)
+                    .newInstance(node + ": " + ioe.getMessage());
+          } catch (NoSuchMethodException | SecurityException 
+                   | InstantiationException | IllegalAccessException
+                   | IllegalArgumentException | InvocationTargetException e) {
+          }
           shouldRetry(ioe, retry);
         }
       }

http://git-wip-us.apache.org/repos/asf/hadoop/blob/67ba20e3/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
index 39dff21..9f29da3 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
+++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
@@ -1685,6 +1685,9 @@ Release 2.7.3 - UNRELEASED
     HDFS-9569. Log the name of the fsimage being loaded for better
     supportability. (Yongjun Zhang)
 
+    HDFS-9634. webhdfs client side exceptions don't provide enough details
+    (Eric Payne via kihwal)
+
   OPTIMIZATIONS
 
   BUG FIXES

http://git-wip-us.apache.org/repos/asf/hadoop/blob/67ba20e3/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/web/TestWebHdfsTimeouts.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/web/TestWebHdfsTimeouts.java
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/web/TestWebHdfsTimeouts.java
index bd4d693..3a87d42 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/web/TestWebHdfsTimeouts.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/web/TestWebHdfsTimeouts.java
@@ -115,7 +115,7 @@ public class TestWebHdfsTimeouts {
       fs.listFiles(new Path("/"), false);
       fail("expected timeout");
     } catch (SocketTimeoutException e) {
-      assertEquals("connect timed out", e.getMessage());
+      assertEquals(fs.getUri().getAuthority() + ": connect timed out", e.getMessage());
     }
   }
 
@@ -128,7 +128,7 @@ public class TestWebHdfsTimeouts {
       fs.listFiles(new Path("/"), false);
       fail("expected timeout");
     } catch (SocketTimeoutException e) {
-      assertEquals("Read timed out", e.getMessage());
+      assertEquals(fs.getUri().getAuthority() + ": Read timed out", e.getMessage());
     }
   }
 
@@ -143,7 +143,7 @@ public class TestWebHdfsTimeouts {
       fs.getDelegationToken("renewer");
       fail("expected timeout");
     } catch (SocketTimeoutException e) {
-      assertEquals("connect timed out", e.getMessage());
+      assertEquals(fs.getUri().getAuthority() + ": connect timed out", e.getMessage());
     }
   }
 
@@ -157,7 +157,7 @@ public class TestWebHdfsTimeouts {
       fs.getDelegationToken("renewer");
       fail("expected timeout");
     } catch (SocketTimeoutException e) {
-      assertEquals("Read timed out", e.getMessage());
+      assertEquals(fs.getUri().getAuthority() + ": Read timed out", e.getMessage());
     }
   }
 
@@ -172,7 +172,7 @@ public class TestWebHdfsTimeouts {
       fs.getFileChecksum(new Path("/file"));
       fail("expected timeout");
     } catch (SocketTimeoutException e) {
-      assertEquals("connect timed out", e.getMessage());
+      assertEquals(fs.getUri().getAuthority() + ": connect timed out", e.getMessage());
     }
   }
 
@@ -187,7 +187,7 @@ public class TestWebHdfsTimeouts {
       fs.getFileChecksum(new Path("/file"));
       fail("expected timeout");
     } catch (SocketTimeoutException e) {
-      assertEquals("Read timed out", e.getMessage());
+      assertEquals(fs.getUri().getAuthority() + ": Read timed out", e.getMessage());
     }
   }
 
@@ -203,7 +203,7 @@ public class TestWebHdfsTimeouts {
       os = fs.create(new Path("/file"));
       fail("expected timeout");
     } catch (SocketTimeoutException e) {
-      assertEquals("connect timed out", e.getMessage());
+      assertEquals(fs.getUri().getAuthority() + ": connect timed out", e.getMessage());
     } finally {
       IOUtils.cleanup(LOG, os);
     }


Mime
View raw message