HDFS-7660. BlockReceiver#close() might be called multiple times, which causes the fsvolume reference being released incorrectly. (Lei Xu via yliu)

This commit is contained in:
yliu 2015-01-23 02:37:44 +08:00
parent aee4500612
commit 5f124efb3e
2 changed files with 6 additions and 1 deletions

View File

@ -768,6 +768,10 @@ Release 2.7.0 - UNRELEASED
HDFS-3519. Checkpoint upload may interfere with a concurrent saveNamespace.
(Ming Ma via cnauroth)
HDFS-7660. BlockReceiver#close() might be called multiple times, which
causes the fsvolume reference being released incorrectly. (Lei Xu via
yliu)
Release 2.6.1 - UNRELEASED
INCOMPATIBLE CHANGES

View File

@ -123,7 +123,7 @@ class BlockReceiver implements Closeable {
private boolean syncOnClose;
private long restartBudget;
/** the reference of the volume where the block receiver writes to */
private final ReplicaHandler replicaHandler;
private ReplicaHandler replicaHandler;
/**
* for replaceBlock response
@ -334,6 +334,7 @@ public void close() throws IOException {
}
if (replicaHandler != null) {
IOUtils.cleanup(null, replicaHandler);
replicaHandler = null;
}
if (measuredFlushTime) {
datanode.metrics.addFlushNanos(flushTotalNanos);