You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-commits@hadoop.apache.org by su...@apache.org on 2013/04/25 06:32:51 UTC
svn commit: r1475625 - in
/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs: CHANGES.txt
src/test/java/org/apache/hadoop/hdfs/TestDataTransferKeepalive.java
Author: suresh
Date: Thu Apr 25 04:32:51 2013
New Revision: 1475625
URL: http://svn.apache.org/r1475625
Log:
HDFS-4745. Merge 1475623 from trunk
Modified:
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDataTransferKeepalive.java
Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt?rev=1475625&r1=1475624&r2=1475625&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt (original)
+++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt Thu Apr 25 04:32:51 2013
@@ -209,6 +209,9 @@ Release 2.0.5-beta - UNRELEASED
HDFS-4739. NN can miscalculate the number of extra edit log segments to
retain. (atm)
+ HDFS-4745. TestDataTransferKeepalive#testSlowReader has race condition that
+ causes sporadic failure. (Chris Nauroth via suresh)
+
Release 2.0.4-alpha - UNRELEASED
INCOMPATIBLE CHANGES
Modified: hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDataTransferKeepalive.java
URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDataTransferKeepalive.java?rev=1475625&r1=1475624&r2=1475625&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDataTransferKeepalive.java (original)
+++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDataTransferKeepalive.java Thu Apr 25 04:32:51 2013
@@ -144,7 +144,15 @@ public class TestDataTransferKeepalive {
stm.read();
assertXceiverCount(1);
- Thread.sleep(WRITE_TIMEOUT + 1000);
+ // Poll for 0 running xceivers. Allow up to 5 seconds for some slack.
+ long totalSleepTime = 0;
+ long sleepTime = WRITE_TIMEOUT + 100;
+ while (getXceiverCountWithoutServer() > 0 && totalSleepTime < 5000) {
+ Thread.sleep(sleepTime);
+ totalSleepTime += sleepTime;
+ sleepTime = 100;
+ }
+
// DN should time out in sendChunks, and this should force
// the xceiver to exit.
assertXceiverCount(0);
@@ -188,9 +196,7 @@ public class TestDataTransferKeepalive {
}
private void assertXceiverCount(int expected) {
- // Subtract 1, since the DataXceiverServer
- // counts as one
- int count = dn.getXceiverCount() - 1;
+ int count = getXceiverCountWithoutServer();
if (count != expected) {
ReflectionUtils.printThreadInfo(
new PrintWriter(System.err),
@@ -199,4 +205,14 @@ public class TestDataTransferKeepalive {
count);
}
}
+
+ /**
+ * Returns the datanode's xceiver count, but subtracts 1, since the
+ * DataXceiverServer counts as one.
+ *
+ * @return int xceiver count, not including DataXceiverServer
+ */
+ private int getXceiverCountWithoutServer() {
+ return dn.getXceiverCount() - 1;
+ }
}