HDFS-14610. HashMap is not thread safe. Field storageMap is typically synchronized by storageMap. However, in one place, field storageMap is not protected with synchronized. (#1015)

(cherry picked from commit d8bac50e12)
This commit is contained in:
paulward24 2019-07-01 13:54:49 -07:00 committed by Wei-Chiu Chuang
parent 6148acebc3
commit 76a9135947
1 changed files with 5 additions and 2 deletions

View File

@ -451,8 +451,11 @@ public class DatanodeDescriptor extends DatanodeInfo {
this.volumeFailureSummary = volumeFailureSummary;
for (StorageReport report : reports) {
DatanodeStorageInfo storage =
storageMap.get(report.getStorage().getStorageID());
DatanodeStorageInfo storage = null;
synchronized (storageMap) {
storage =
storageMap.get(report.getStorage().getStorageID());
}
if (checkFailedStorages) {
failedStorageInfos.remove(storage);
}