Author: hairong
Date: Tue Oct 13 00:36:49 2009
New Revision: 824553
URL: http://svn.apache.org/viewvc?rev=824553&view=rev
Log:
Merge -c 824552 to move the change of HDFS-673 from trunk to branch 0.21
Modified:
hadoop/hdfs/branches/branch-0.21/ (props changed)
hadoop/hdfs/branches/branch-0.21/.eclipse.templates/.launches/ (props
changed)
hadoop/hdfs/branches/branch-0.21/CHANGES.txt
hadoop/hdfs/branches/branch-0.21/build.xml (props changed)
hadoop/hdfs/branches/branch-0.21/src/contrib/block_forensics/ (props
changed)
hadoop/hdfs/branches/branch-0.21/src/contrib/block_forensics/client/
(props changed)
hadoop/hdfs/branches/branch-0.21/src/contrib/block_forensics/ivy/ (props
changed)
hadoop/hdfs/branches/branch-0.21/src/contrib/block_forensics/src/ (props
changed)
hadoop/hdfs/branches/branch-0.21/src/contrib/block_forensics/src/java/
(props changed)
hadoop/hdfs/branches/branch-0.21/src/contrib/block_forensics/src/java/org/
(props changed)
hadoop/hdfs/branches/branch-0.21/src/contrib/block_forensics/src/java/org/apache/
(props changed)
hadoop/hdfs/branches/branch-0.21/src/contrib/block_forensics/src/java/org/apache/hadoop/
(props changed)
hadoop/hdfs/branches/branch-0.21/src/contrib/block_forensics/src/java/org/apache/hadoop/block_forensics/
(props changed)
hadoop/hdfs/branches/branch-0.21/src/contrib/hdfsproxy/ (props changed)
hadoop/hdfs/branches/branch-0.21/src/java/ (props changed)
hadoop/hdfs/branches/branch-0.21/src/java/org/apache/hadoop/hdfs/protocol/RecoveryInProgressException.java
(props changed)
hadoop/hdfs/branches/branch-0.21/src/java/org/apache/hadoop/hdfs/server/datanode/BlockReceiver.java
hadoop/hdfs/branches/branch-0.21/src/java/org/apache/hadoop/hdfs/server/datanode/ReplicaInfo.java
(props changed)
hadoop/hdfs/branches/branch-0.21/src/test/aop/org/apache/hadoop/hdfs/protocol/
(props changed)
hadoop/hdfs/branches/branch-0.21/src/test/hdfs/ (props changed)
hadoop/hdfs/branches/branch-0.21/src/webapps/datanode/ (props changed)
hadoop/hdfs/branches/branch-0.21/src/webapps/hdfs/ (props changed)
hadoop/hdfs/branches/branch-0.21/src/webapps/secondary/ (props changed)
Propchange: hadoop/hdfs/branches/branch-0.21/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Oct 13 00:36:49 2009
@@ -1,3 +1,3 @@
/hadoop/core/branches/branch-0.19/hdfs:713112
/hadoop/hdfs/branches/HDFS-265:796829-820463
-/hadoop/hdfs/trunk:818294-818298
+/hadoop/hdfs/trunk:818294-818298,824552
Propchange: hadoop/hdfs/branches/branch-0.21/.eclipse.templates/.launches/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Oct 13 00:36:49 2009
@@ -0,0 +1 @@
+/hadoop/hdfs/trunk/.eclipse.templates/.launches:824552
Modified: hadoop/hdfs/branches/branch-0.21/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hadoop/hdfs/branches/branch-0.21/CHANGES.txt?rev=824553&r1=824552&r2=824553&view=diff
==============================================================================
--- hadoop/hdfs/branches/branch-0.21/CHANGES.txt (original)
+++ hadoop/hdfs/branches/branch-0.21/CHANGES.txt Tue Oct 13 00:36:49 2009
@@ -372,6 +372,9 @@
HDFS-676. Fix NPE in FSDataset.updateReplicaUnderRecovery() (shv)
+ HDFS-673. BlockReceiver#PacketResponder should not remove a packet from
+ the ack queue before its ack is sent. (hairong)
+
Release 0.20.1 - 2009-09-01
IMPROVEMENTS
Propchange: hadoop/hdfs/branches/branch-0.21/build.xml
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Oct 13 00:36:49 2009
@@ -1,4 +1,4 @@
/hadoop/core/branches/branch-0.19/hdfs/build.xml:713112
/hadoop/core/trunk/build.xml:779102
/hadoop/hdfs/branches/HDFS-265/build.xml:796829-820463
-/hadoop/hdfs/trunk/build.xml:818294-818298
+/hadoop/hdfs/trunk/build.xml:818294-818298,824552
Propchange: hadoop/hdfs/branches/branch-0.21/src/contrib/block_forensics/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Oct 13 00:36:49 2009
@@ -0,0 +1 @@
+/hadoop/hdfs/trunk/src/contrib/block_forensics:824552
Propchange: hadoop/hdfs/branches/branch-0.21/src/contrib/block_forensics/client/
('svn:mergeinfo' removed)
Propchange: hadoop/hdfs/branches/branch-0.21/src/contrib/block_forensics/ivy/
('svn:mergeinfo' removed)
Propchange: hadoop/hdfs/branches/branch-0.21/src/contrib/block_forensics/src/
('svn:mergeinfo' removed)
Propchange:
hadoop/hdfs/branches/branch-0.21/src/contrib/block_forensics/src/java/
('svn:mergeinfo' removed)
Propchange:
hadoop/hdfs/branches/branch-0.21/src/contrib/block_forensics/src/java/org/
('svn:mergeinfo' removed)
Propchange:
hadoop/hdfs/branches/branch-0.21/src/contrib/block_forensics/src/java/org/apache/
('svn:mergeinfo' removed)
Propchange:
hadoop/hdfs/branches/branch-0.21/src/contrib/block_forensics/src/java/org/apache/hadoop/
('svn:mergeinfo' removed)
Propchange:
hadoop/hdfs/branches/branch-0.21/src/contrib/block_forensics/src/java/org/apache/hadoop/block_forensics/
('svn:mergeinfo' removed)
Propchange: hadoop/hdfs/branches/branch-0.21/src/contrib/hdfsproxy/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Oct 13 00:36:49 2009
@@ -1,4 +1,4 @@
/hadoop/core/branches/branch-0.19/hdfs/src/contrib/hdfsproxy:713112
/hadoop/core/trunk/src/contrib/hdfsproxy:776175-784663
/hadoop/hdfs/branches/HDFS-265/src/contrib/hdfsproxy:796829-820463
-/hadoop/hdfs/trunk/src/contrib/hdfsproxy:818294-818298
+/hadoop/hdfs/trunk/src/contrib/hdfsproxy:818294-818298,824552
Propchange: hadoop/hdfs/branches/branch-0.21/src/java/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Oct 13 00:36:49 2009
@@ -1,4 +1,4 @@
/hadoop/core/branches/branch-0.19/hdfs/src/java:713112
/hadoop/core/trunk/src/hdfs:776175-785643,785929-786278
/hadoop/hdfs/branches/HDFS-265/src/java:796829-820463
-/hadoop/hdfs/trunk/src/java:818294-818298
+/hadoop/hdfs/trunk/src/java:818294-818298,824552
Propchange:
hadoop/hdfs/branches/branch-0.21/src/java/org/apache/hadoop/hdfs/protocol/RecoveryInProgressException.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Oct 13 00:36:49 2009
@@ -1,4 +1,5 @@
/hadoop/core/branches/branch-0.19/hdfs/src/java/org/apache/hadoop/hdfs/server/datanode/RecoveryInProgressException.java:713112
/hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/datanode/RecoveryInProgressException.java:776175-785643,785929-786278
/hadoop/hdfs/branches/branch-0.21/src/java/org/apache/hadoop/hdfs/server/datanode/RecoveryInProgressException.java:817353-818319,818321-818553
+/hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/protocol/RecoveryInProgressException.java:824552
/hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/datanode/RecoveryInProgressException.java:796829-800617,800619-803337,804756-805652,808672-809439,811495-813103,813105-813630,814223-815964,818294-818298
Modified:
hadoop/hdfs/branches/branch-0.21/src/java/org/apache/hadoop/hdfs/server/datanode/BlockReceiver.java
URL:
http://svn.apache.org/viewvc/hadoop/hdfs/branches/branch-0.21/src/java/org/apache/hadoop/hdfs/server/datanode/BlockReceiver.java?rev=824553&r1=824552&r2=824553&view=diff
==============================================================================
---
hadoop/hdfs/branches/branch-0.21/src/java/org/apache/hadoop/hdfs/server/datanode/BlockReceiver.java
(original)
+++
hadoop/hdfs/branches/branch-0.21/src/java/org/apache/hadoop/hdfs/server/datanode/BlockReceiver.java
Tue Oct 13 00:36:49 2009
@@ -517,6 +517,8 @@
}
replicaInfo.setBytesOnDisk(offsetInBlock);
datanode.myMetrics.bytesWritten.inc(len);
+ /// flush entire packet
+ flush();
}
} catch (IOException iex) {
datanode.checkDiskError(iex);
@@ -524,9 +526,6 @@
}
}
- /// flush entire packet before sending ack
- flush();
-
if (throttler != null) { // throttle I/O
throttler.throttle(len);
}
@@ -804,7 +803,7 @@
if (!running || !datanode.shouldRun) {
break;
}
- Packet pkt = ackQueue.removeFirst();
+ Packet pkt = ackQueue.getFirst();
long expected = pkt.seqno;
notifyAll();
LOG.debug("PacketResponder " + numTargets +
@@ -837,6 +836,7 @@
replyOut.writeLong(expected);
SUCCESS.write(replyOut);
replyOut.flush();
+ ackQueue.removeFirst();
if (pkt.lastByteInBlock>replicaInfo.getBytesAcked()) {
replicaInfo.setBytesAcked(pkt.lastByteInBlock);
}
@@ -872,7 +872,6 @@
}
boolean lastPacketInBlock = false;
- Packet pkt = null;
final long startTime = ClientTraceLog.isInfoEnabled() ?
System.nanoTime() : 0;
while (running && datanode.shouldRun && !lastPacketInBlock) {
@@ -880,6 +879,7 @@
try {
DataTransferProtocol.Status op = SUCCESS;
boolean didRead = false;
+ Packet pkt = null;
long expected = -2;
try {
// read seqno from downstream datanode
@@ -910,7 +910,7 @@
throw e;
}
}
- pkt = ackQueue.removeFirst();
+ pkt = ackQueue.getFirst();
expected = pkt.seqno;
notifyAll();
LOG.debug("PacketResponder " + numTargets + " seqno = " +
seqno);
@@ -1001,12 +1001,17 @@
op.write(replyOut);
}
replyOut.flush();
+
LOG.debug("PacketResponder " + block + " " + numTargets +
" responded other status " + " for seqno " + expected);
- if (pkt != null && success &&
- pkt.lastByteInBlock>replicaInfo.getBytesAcked()) {
- replicaInfo.setBytesAcked(pkt.lastByteInBlock);
+ if (pkt != null) {
+ // remove the packet from the queue
+ ackQueue.removeFirst();
+ // update bytes acked
+ if (success && pkt.lastByteInBlock>replicaInfo.getBytesAcked()) {
+ replicaInfo.setBytesAcked(pkt.lastByteInBlock);
+ }
}
// If we were unable to read the seqno from downstream, then stop.
if (expected == -2) {
Propchange:
hadoop/hdfs/branches/branch-0.21/src/java/org/apache/hadoop/hdfs/server/datanode/ReplicaInfo.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Oct 13 00:36:49 2009
@@ -3,4 +3,4 @@
/hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/datanode/DatanodeBlockInfo.java:776175-785643,785929-786278
/hadoop/core/trunk/src/hdfs/org/apache/hadoop/hdfs/server/datanode/ReplicaInfo.java:776175-785643,785929-786278
/hadoop/hdfs/branches/HDFS-265/src/java/org/apache/hadoop/hdfs/server/datanode/ReplicaInfo.java:796829-820463
-/hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/datanode/ReplicaInfo.java:818294-818298
+/hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/server/datanode/ReplicaInfo.java:818294-818298,824552
Propchange:
hadoop/hdfs/branches/branch-0.21/src/test/aop/org/apache/hadoop/hdfs/protocol/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Oct 13 00:36:49 2009
@@ -0,0 +1 @@
+/hadoop/hdfs/trunk/src/test/aop/org/apache/hadoop/hdfs/protocol:824552
Propchange: hadoop/hdfs/branches/branch-0.21/src/test/hdfs/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Oct 13 00:36:49 2009
@@ -1,4 +1,4 @@
/hadoop/core/branches/branch-0.19/hdfs/src/test/hdfs:713112
/hadoop/core/trunk/src/test/hdfs:776175-785643
/hadoop/hdfs/branches/HDFS-265/src/test/hdfs:796829-820463
-/hadoop/hdfs/trunk/src/test/hdfs:818294-818298
+/hadoop/hdfs/trunk/src/test/hdfs:818294-818298,824552
Propchange: hadoop/hdfs/branches/branch-0.21/src/webapps/datanode/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Oct 13 00:36:49 2009
@@ -1,4 +1,4 @@
/hadoop/core/branches/branch-0.19/hdfs/src/webapps/datanode:713112
/hadoop/core/trunk/src/webapps/datanode:776175-784663
/hadoop/hdfs/branches/HDFS-265/src/webapps/datanode:796829-820463
-/hadoop/hdfs/trunk/src/webapps/datanode:818294-818298
+/hadoop/hdfs/trunk/src/webapps/datanode:818294-818298,824552
Propchange: hadoop/hdfs/branches/branch-0.21/src/webapps/hdfs/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Oct 13 00:36:49 2009
@@ -1,4 +1,4 @@
/hadoop/core/branches/branch-0.19/hdfs/src/webapps/hdfs:713112
/hadoop/core/trunk/src/webapps/hdfs:776175-784663
/hadoop/hdfs/branches/HDFS-265/src/webapps/hdfs:796829-820463
-/hadoop/hdfs/trunk/src/webapps/hdfs:818294-818298
+/hadoop/hdfs/trunk/src/webapps/hdfs:818294-818298,824552
Propchange: hadoop/hdfs/branches/branch-0.21/src/webapps/secondary/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Oct 13 00:36:49 2009
@@ -1,4 +1,4 @@
/hadoop/core/branches/branch-0.19/hdfs/src/webapps/secondary:713112
/hadoop/core/trunk/src/webapps/secondary:776175-784663
/hadoop/hdfs/branches/HDFS-265/src/webapps/secondary:796829-820463
-/hadoop/hdfs/trunk/src/webapps/secondary:818294-818298
+/hadoop/hdfs/trunk/src/webapps/secondary:818294-818298,824552