HDFS-4745. Merge 1475623 from trunk
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1475625 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
b392a65e2e
commit
14f658bf38
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue