Author: hairong
Date: Mon Oct 26 17:53:58 2009
New Revision: 829880
URL: http://svn.apache.org/viewvc?rev=829880&view=rev
Log:
HDFS-723. Fix deadlock in DFSClient#DFSOutputStream. Contributed by Hairong
Kuang.
Modified:
hadoop/hdfs/trunk/CHANGES.txt
hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/DFSClient.java
Modified: hadoop/hdfs/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hadoop/hdfs/trunk/CHANGES.txt?rev=829880&r1=829879&r2=829880&view=diff
==============================================================================
--- hadoop/hdfs/trunk/CHANGES.txt (original)
+++ hadoop/hdfs/trunk/CHANGES.txt Mon Oct 26 17:53:58 2009
@@ -453,6 +453,8 @@
HDFS-725. Support the build error fix for HADOOP-6327. (Sanjay Radia via
szetszwo)
+ HDFS-723. Fix deadlock in DFSClient#DFSOutputStream. (hairong)
+
Release 0.20.2 - Unreleased
IMPROVEMENTS
Modified: hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/DFSClient.java
URL:
http://svn.apache.org/viewvc/hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/DFSClient.java?rev=829880&r1=829879&r2=829880&view=diff
==============================================================================
--- hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/DFSClient.java (original)
+++ hadoop/hdfs/trunk/src/java/org/apache/hadoop/hdfs/DFSClient.java Mon Oct 26
17:53:58 2009
@@ -1184,10 +1184,17 @@
}
}
- synchronized void close() {
- while (!pendingCreates.isEmpty()) {
- String src = pendingCreates.firstKey();
- OutputStream out = pendingCreates.remove(src);
+ void close() {
+ while (true) {
+ String src;
+ OutputStream out;
+ synchronized (this) {
+ if (pendingCreates.isEmpty()) {
+ return;
+ }
+ src = pendingCreates.firstKey();
+ out = pendingCreates.remove(src);
+ }
if (out != null) {
try {
out.close();