Author: umamahesh
Date: Tue May 29 19:37:03 2012
New Revision: 1343944
URL: http://svn.apache.org/viewvc?rev=1343944&view=rev
Log:
HDFS-3398. Client will not retry when primaryDN is down once it's just got
pipeline. Contributed by Amith D K.
Modified:
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSOutputStream.java
Modified:
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSOutputStream.java
URL:
http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSOutputStream.java?rev=1343944&r1=1343943&r2=1343944&view=diff
==============================================================================
---
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSOutputStream.java
(original)
+++
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSOutputStream.java
Tue May 29 19:37:03 2012
@@ -507,8 +507,15 @@ public class DFSOutputStream extends FSO
}
// write out data to remote datanode
- blockStream.write(buf.array(), buf.position(), buf.remaining());
- blockStream.flush();
+ try {
+ blockStream.write(buf.array(), buf.position(), buf.remaining());
+ blockStream.flush();
+ } catch (IOException e) {
+ // HDFS-3398 treat primary DN is down since client is unable to
+ // write to primary DN
+ errorIndex = 0;
+ throw e;
+ }
lastPacket = System.currentTimeMillis();
if (one.isHeartbeatPacket()) { //heartbeat packet