HDFS-4328. TestLargeBlock#testLargeBlockSize is timing out. Contributed by Chris Nauroth.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1431867 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
82b218c605
commit
91c28d4409
@ -299,6 +299,9 @@ Trunk (Unreleased)
|
||||
|
||||
HDFS-4382. Fix typo MAX_NOT_CHANGED_INTERATIONS. (Ted Yu via suresh)
|
||||
|
||||
HDFS-4328. TestLargeBlock#testLargeBlockSize is timing out. (Chris Nauroth
|
||||
via atm)
|
||||
|
||||
Release 2.0.3-alpha - Unreleased
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
|
@ -648,7 +648,7 @@ long sendBlock(DataOutputStream out, OutputStream baseStream,
|
||||
|
||||
ByteBuffer pktBuf = ByteBuffer.allocate(pktBufSize);
|
||||
|
||||
while (endOffset > offset) {
|
||||
while (endOffset > offset && !Thread.currentThread().isInterrupted()) {
|
||||
manageOsCache();
|
||||
long len = sendPacket(pktBuf, maxChunksPerPacket, streamForSendChunks,
|
||||
transferTo, throttler);
|
||||
@ -656,16 +656,19 @@ long sendBlock(DataOutputStream out, OutputStream baseStream,
|
||||
totalRead += len + (numberOfChunks(len) * checksumSize);
|
||||
seqno++;
|
||||
}
|
||||
try {
|
||||
// send an empty packet to mark the end of the block
|
||||
sendPacket(pktBuf, maxChunksPerPacket, streamForSendChunks, transferTo,
|
||||
throttler);
|
||||
out.flush();
|
||||
} catch (IOException e) { //socket error
|
||||
throw ioeToSocketException(e);
|
||||
}
|
||||
// If this thread was interrupted, then it did not send the full block.
|
||||
if (!Thread.currentThread().isInterrupted()) {
|
||||
try {
|
||||
// send an empty packet to mark the end of the block
|
||||
sendPacket(pktBuf, maxChunksPerPacket, streamForSendChunks, transferTo,
|
||||
throttler);
|
||||
out.flush();
|
||||
} catch (IOException e) { //socket error
|
||||
throw ioeToSocketException(e);
|
||||
}
|
||||
|
||||
sentEntireByteRange = true;
|
||||
sentEntireByteRange = true;
|
||||
}
|
||||
} finally {
|
||||
if (clientTraceFmt != null) {
|
||||
final long endTime = System.nanoTime();
|
||||
|
@ -96,7 +96,12 @@ public synchronized void throttle(long numOfBytes) {
|
||||
// Wait for next period so that curReserve can be increased.
|
||||
try {
|
||||
wait( curPeriodEnd - now );
|
||||
} catch (InterruptedException ignored) {}
|
||||
} catch (InterruptedException e) {
|
||||
// Abort throttle and reset interrupted status to make sure other
|
||||
// interrupt handling higher in the call stack executes.
|
||||
Thread.currentThread().interrupt();
|
||||
break;
|
||||
}
|
||||
} else if ( now < (curPeriodStart + periodExtension)) {
|
||||
curPeriodStart = curPeriodEnd;
|
||||
curReserve += bytesPerPeriod;
|
||||
|
@ -158,7 +158,7 @@ static void checkFullFile(FileSystem fs, Path name, final long fileSize)
|
||||
* Test for block size of 2GB + 512B
|
||||
* @throws IOException in case of errors
|
||||
*/
|
||||
@Test
|
||||
@Test(timeout = 120000)
|
||||
public void testLargeBlockSize() throws IOException {
|
||||
final long blockSize = 2L * 1024L * 1024L * 1024L + 512L; // 2GB + 512B
|
||||
runTest(blockSize);
|
||||
|
Loading…
Reference in New Issue
Block a user