hadoop-common-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From cnaur...@apache.org
Subject [1/2] hadoop git commit: HDFS-9384. TestWebHdfsContentLength intermittently hangs and fails due to TCP conversation mismatch between client and server. Contributed by Chris Nauroth.
Date Fri, 06 Nov 2015 06:21:03 GMT
Repository: hadoop
Updated Branches:
  refs/heads/branch-2 01ae30796 -> 75bcc8bcd
  refs/heads/trunk bff7c90a5 -> 66c096731


HDFS-9384. TestWebHdfsContentLength intermittently hangs and fails due to TCP conversation
mismatch between client and server. Contributed by Chris Nauroth.


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

Branch: refs/heads/trunk
Commit: 66c096731052fb187dc49f5bcaec8432c4b92d0c
Parents: bff7c90
Author: cnauroth <cnauroth@apache.org>
Authored: Thu Nov 5 22:07:08 2015 -0800
Committer: cnauroth <cnauroth@apache.org>
Committed: Thu Nov 5 22:07:08 2015 -0800

----------------------------------------------------------------------
 .../hdfs/web/TestWebHdfsContentLength.java      | 23 +++++++++++++++++---
 hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt     |  3 +++
 2 files changed, 23 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/66c09673/hadoop-hdfs-project/hadoop-hdfs-client/src/test/java/org/apache/hadoop/hdfs/web/TestWebHdfsContentLength.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs-client/src/test/java/org/apache/hadoop/hdfs/web/TestWebHdfsContentLength.java
b/hadoop-hdfs-project/hadoop-hdfs-client/src/test/java/org/apache/hadoop/hdfs/web/TestWebHdfsContentLength.java
index ba99f7a..19f18b0 100644
--- a/hadoop-hdfs-project/hadoop-hdfs-client/src/test/java/org/apache/hadoop/hdfs/web/TestWebHdfsContentLength.java
+++ b/hadoop-hdfs-project/hadoop-hdfs-client/src/test/java/org/apache/hadoop/hdfs/web/TestWebHdfsContentLength.java
@@ -38,8 +38,9 @@ import org.apache.hadoop.net.NetUtils;
 import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.BeforeClass;
+import org.junit.Rule;
 import org.junit.Test;
-
+import org.junit.rules.Timeout;
 
 public class TestWebHdfsContentLength {
   private static ServerSocket listenSocket;
@@ -58,6 +59,9 @@ public class TestWebHdfsContentLength {
 
   private static ExecutorService executor;
 
+  @Rule
+  public Timeout timeout = new Timeout(30000);
+
   @BeforeClass
   public static void setup() throws IOException {
     listenSocket = new ServerSocket();
@@ -186,8 +190,21 @@ public class TestWebHdfsContentLength {
           client.getOutputStream().write(response.getBytes());
           client.shutdownOutput();
           byte[] buf = new byte[4*1024]; // much bigger than request
-          int n = client.getInputStream().read(buf);
-          return new String(buf, 0, n);
+
+          // The second request can be sent with Transfer-Encoding: chunked.
+          // The Java HTTP client tends to split the headers and the chunked
+          // body into separate writes, so the first read likely only gets the
+          // headers.  We must fully consume the input to prevent a hang on the
+          // client side.
+          StringBuilder sb = new StringBuilder();
+          for (;;) {
+            int n = client.getInputStream().read(buf);
+            if (n <= 0) {
+              break;
+            }
+            sb.append(new String(buf, 0, n, "UTF-8"));
+          }
+          return sb.toString();
         } finally {
           client.close();
         }

http://git-wip-us.apache.org/repos/asf/hadoop/blob/66c09673/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 93a7043..af6723f 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
+++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
@@ -2250,6 +2250,9 @@ Release 2.8.0 - UNRELEASED
 
     HDFS-9378. hadoop-hdfs-client tests do not write logs. (cnauroth)
 
+    HDFS-9384. TestWebHdfsContentLength intermittently hangs and fails due to
+    TCP conversation mismatch between client and server. (cnauroth)
+
 Release 2.7.3 - UNRELEASED
 
   INCOMPATIBLE CHANGES


Mime
View raw message