This is an automated email from the ASF dual-hosted git repository.
aengineer pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/trunk by this push:
new d8bac50 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)
d8bac50 is described below
commit d8bac50e12d243ef8fd2c7e0ce5c9997131dee74
Author: paulward24 <[email protected]>
AuthorDate: Mon Jul 1 13:54:49 2019 -0700
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)
---
.../hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java
b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java
index 6aa2376..e0d8558 100644
---
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java
+++
b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java
@@ -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);
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]