HDFS-3664. BlockManager race when stopping active services. Contributed by Colin Patrick McCabe
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-2@1383756 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
a5e50dfae9
commit
08f061b366
|
@ -590,6 +590,9 @@ Release 2.0.2-alpha - 2012-09-07
|
|||
|
||||
HDFS-2757. Cannot read a local block that's being written to when
|
||||
using the local read short circuit. (Jean-Daniel Cryans via eli)
|
||||
|
||||
HDFS-3664. BlockManager race when stopping active services.
|
||||
(Colin Patrick McCabe via eli)
|
||||
|
||||
BREAKDOWN OF HDFS-3042 SUBTASKS
|
||||
|
||||
|
|
|
@ -364,11 +364,10 @@ public class BlockManager {
|
|||
replicationThread.join(3000);
|
||||
}
|
||||
} catch (InterruptedException ie) {
|
||||
} finally {
|
||||
if (pendingReplications != null) pendingReplications.stop();
|
||||
blocksMap.close();
|
||||
datanodeManager.close();
|
||||
}
|
||||
datanodeManager.close();
|
||||
pendingReplications.stop();
|
||||
blocksMap.close();
|
||||
}
|
||||
|
||||
/** @return the datanodeManager */
|
||||
|
|
|
@ -183,7 +183,13 @@ public class DatanodeManager {
|
|||
}
|
||||
|
||||
void close() {
|
||||
if (decommissionthread != null) decommissionthread.interrupt();
|
||||
if (decommissionthread != null) {
|
||||
decommissionthread.interrupt();
|
||||
try {
|
||||
decommissionthread.join(3000);
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
}
|
||||
heartbeatManager.close();
|
||||
}
|
||||
|
||||
|
|
|
@ -74,6 +74,11 @@ class HeartbeatManager implements DatanodeStatistics {
|
|||
|
||||
void close() {
|
||||
heartbeatThread.interrupt();
|
||||
try {
|
||||
// This will no effect if the thread hasn't yet been started.
|
||||
heartbeatThread.join(3000);
|
||||
} catch (InterruptedException e) {
|
||||
}
|
||||
}
|
||||
|
||||
synchronized int getLiveDatanodeCount() {
|
||||
|
|
Loading…
Reference in New Issue