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 wh...@apache.org on 2015/11/12 19:22:28 UTC
[16/50] [abbrv] hadoop git commit: HDFS-9384.
TestWebHdfsContentLength intermittently hangs and fails due to TCP
conversation mismatch between client and server. Contributed by Chris
Nauroth.
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/HDFS-8707
Commit: 66c096731052fb187dc49f5bcaec8432c4b92d0c
Parents: bff7c90
Author: cnauroth <cn...@apache.org>
Authored: Thu Nov 5 22:07:08 2015 -0800
Committer: cnauroth <cn...@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