[jira] [Commented] (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.
[ https://issues.apache.org/jira/browse/HDFS-14610?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16876695#comment-16876695 ] Paul Ward commented on HDFS-14610: -- Hi Anu, Thank you for sending those links. Indeed, I am not familiar with the CR flow for Hadoop, so those links speed up a *lot* my figuring out what is where. Thanks!! > HashMap is not thread safe. Field storageMap is typically synchronized by > storageMap. However, in one place, field storageMap is not protected with > synchronized. > - > > Key: HDFS-14610 > URL: https://issues.apache.org/jira/browse/HDFS-14610 > Project: Hadoop HDFS > Issue Type: Bug >Reporter: Paul Ward >Assignee: Paul Ward >Priority: Critical > Labels: fix-provided, patch-available > Fix For: 3.3.0 > > Attachments: addingSynchronization.patch > > > I submitted a CR for this issue at: > [https://github.com/apache/hadoop/pull/1015] > The field *storageMap* (a *HashMap*) > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L155] > is typically protected by synchronization on *storageMap*, e.g., > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L294] > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L443] > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L484] > For a total of 9 locations. > The reason is because *HashMap* is not thread safe. > However, here: > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L455] > {{DatanodeStorageInfo storage =}} > {{ storageMap.get(report.getStorage().getStorageID());}} > It is not synchronized. > Note that in the same method: > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L484] > *storageMap* is again protected by synchronization: > {{synchronized (storageMap) {}} > {{ storageMapSize = storageMap.size();}} > {{}}} > > The CR I inlined above protected the above instance (line 455 ) with > synchronization > like in line 484 and in all other occurrences. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (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.
[ https://issues.apache.org/jira/browse/HDFS-14610?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16876518#comment-16876518 ] Hudson commented on HDFS-14610: --- FAILURE: Integrated in Jenkins build Hadoop-trunk-Commit #16847 (See [https://builds.apache.org/job/Hadoop-trunk-Commit/16847/]) HDFS-14610. HashMap is not thread safe. Field storageMap is typically (aengineer: rev d8bac50e12d243ef8fd2c7e0ce5c9997131dee74) * (edit) hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java > HashMap is not thread safe. Field storageMap is typically synchronized by > storageMap. However, in one place, field storageMap is not protected with > synchronized. > - > > Key: HDFS-14610 > URL: https://issues.apache.org/jira/browse/HDFS-14610 > Project: Hadoop HDFS > Issue Type: Bug >Reporter: Paul Ward >Assignee: Paul Ward >Priority: Critical > Labels: fix-provided, patch-available > Fix For: 3.3.0 > > Attachments: addingSynchronization.patch > > > I submitted a CR for this issue at: > [https://github.com/apache/hadoop/pull/1015] > The field *storageMap* (a *HashMap*) > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L155] > is typically protected by synchronization on *storageMap*, e.g., > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L294] > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L443] > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L484] > For a total of 9 locations. > The reason is because *HashMap* is not thread safe. > However, here: > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L455] > {{DatanodeStorageInfo storage =}} > {{ storageMap.get(report.getStorage().getStorageID());}} > It is not synchronized. > Note that in the same method: > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L484] > *storageMap* is again protected by synchronization: > {{synchronized (storageMap) {}} > {{ storageMapSize = storageMap.size();}} > {{}}} > > The CR I inlined above protected the above instance (line 455 ) with > synchronization > like in line 484 and in all other occurrences. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (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.
[ https://issues.apache.org/jira/browse/HDFS-14610?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16876498#comment-16876498 ] Anu Engineer commented on HDFS-14610: - [~paulward24] Thank you for the contribution. And welcome to Hadoop. Since you like to post patches via Github, can I please show you a process which might make your life easier? The following links contain the information for Github and Hadoop. [https://cwiki.apache.org/confluence/display/HADOOP/Hadoop+Contributor+Guide] [https://cwiki.apache.org/confluence/display/HADOOP/Using+Github+for+Ozone+development] If you push a patch with right Jira number, like if you commits have HDFS-14610 etc in the subject tag, then the link will be added automatically to this JIRA. For example; if you look at how I have committed your patch. it starts with "HDFS-14610. HashMap is not thread safe" If you like, I can setup a video conference and help you understand the contribution process. I am presuming that all these issues are being discovered by some tool, and you will be posting more of these race conditions and solutions for them. Just wanted to make sure you are comfortable with your contributions. As always, Thank you for your contribution to Hadoop, and I have committed this patch to the trunk. Feel free to tag me or send me an email if you need my attention on any of these JIRAS. > HashMap is not thread safe. Field storageMap is typically synchronized by > storageMap. However, in one place, field storageMap is not protected with > synchronized. > - > > Key: HDFS-14610 > URL: https://issues.apache.org/jira/browse/HDFS-14610 > Project: Hadoop HDFS > Issue Type: Bug >Reporter: Paul Ward >Assignee: Paul Ward >Priority: Critical > Labels: fix-provided, patch-available > Attachments: addingSynchronization.patch > > > I submitted a CR for this issue at: > [https://github.com/apache/hadoop/pull/1015] > The field *storageMap* (a *HashMap*) > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L155] > is typically protected by synchronization on *storageMap*, e.g., > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L294] > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L443] > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L484] > For a total of 9 locations. > The reason is because *HashMap* is not thread safe. > However, here: > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L455] > {{DatanodeStorageInfo storage =}} > {{ storageMap.get(report.getStorage().getStorageID());}} > It is not synchronized. > Note that in the same method: > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L484] > *storageMap* is again protected by synchronization: > {{synchronized (storageMap) {}} > {{ storageMapSize = storageMap.size();}} > {{}}} > > The CR I inlined above protected the above instance (line 455 ) with > synchronization > like in line 484 and in all other occurrences. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (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.
[ https://issues.apache.org/jira/browse/HDFS-14610?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16876323#comment-16876323 ] Paul Ward commented on HDFS-14610: -- Hi Anu, Thank you for explaining this convention. I was not aware of it. I will do the tagging from now on. Thanks! > HashMap is not thread safe. Field storageMap is typically synchronized by > storageMap. However, in one place, field storageMap is not protected with > synchronized. > - > > Key: HDFS-14610 > URL: https://issues.apache.org/jira/browse/HDFS-14610 > Project: Hadoop HDFS > Issue Type: Bug >Reporter: Paul Ward >Assignee: Paul Ward >Priority: Critical > Labels: fix-provided, patch-available > Attachments: addingSynchronization.patch > > > I submitted a CR for this issue at: > [https://github.com/apache/hadoop/pull/1015] > The field *storageMap* (a *HashMap*) > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L155] > is typically protected by synchronization on *storageMap*, e.g., > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L294] > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L443] > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L484] > For a total of 9 locations. > The reason is because *HashMap* is not thread safe. > However, here: > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L455] > {{DatanodeStorageInfo storage =}} > {{ storageMap.get(report.getStorage().getStorageID());}} > It is not synchronized. > Note that in the same method: > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L484] > *storageMap* is again protected by synchronization: > {{synchronized (storageMap) {}} > {{ storageMapSize = storageMap.size();}} > {{}}} > > The CR I inlined above protected the above instance (line 455 ) with > synchronization > like in line 484 and in all other occurrences. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (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.
[ https://issues.apache.org/jira/browse/HDFS-14610?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16876294#comment-16876294 ] Anu Engineer commented on HDFS-14610: - Hi Paul, I will take a look at this today. Just so that you know, the Hadoop convention is to assign a Jira to the person who provides the fix/patch. Hence I have assigned this to you. Hadoop does not move assignments based on the state of JIRA. If you need my attention, you can always tag me on a Jira, and I will see it. Thanks Anu > HashMap is not thread safe. Field storageMap is typically synchronized by > storageMap. However, in one place, field storageMap is not protected with > synchronized. > - > > Key: HDFS-14610 > URL: https://issues.apache.org/jira/browse/HDFS-14610 > Project: Hadoop HDFS > Issue Type: Bug >Reporter: Paul Ward >Assignee: Paul Ward >Priority: Critical > Labels: fix-provided, patch-available > Attachments: addingSynchronization.patch > > > I submitted a CR for this issue at: > [https://github.com/apache/hadoop/pull/1015] > The field *storageMap* (a *HashMap*) > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L155] > is typically protected by synchronization on *storageMap*, e.g., > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L294] > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L443] > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L484] > For a total of 9 locations. > The reason is because *HashMap* is not thread safe. > However, here: > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L455] > {{DatanodeStorageInfo storage =}} > {{ storageMap.get(report.getStorage().getStorageID());}} > It is not synchronized. > Note that in the same method: > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L484] > *storageMap* is again protected by synchronization: > {{synchronized (storageMap) {}} > {{ storageMapSize = storageMap.size();}} > {{}}} > > The CR I inlined above protected the above instance (line 455 ) with > synchronization > like in line 484 and in all other occurrences. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (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.
[ https://issues.apache.org/jira/browse/HDFS-14610?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16875954#comment-16875954 ] Paul Ward commented on HDFS-14610: -- Anu, Can you please take a look at the patch, like you did for: https://issues.apache.org/jira/browse/HDFS-14618 ? I.e., I do not think those tests fail due to the patch. Thanks > HashMap is not thread safe. Field storageMap is typically synchronized by > storageMap. However, in one place, field storageMap is not protected with > synchronized. > - > > Key: HDFS-14610 > URL: https://issues.apache.org/jira/browse/HDFS-14610 > Project: Hadoop HDFS > Issue Type: Bug >Reporter: Paul Ward >Priority: Critical > Labels: fix-provided, patch-available > Attachments: addingSynchronization.patch > > > I submitted a CR for this issue at: > [https://github.com/apache/hadoop/pull/1015] > The field *storageMap* (a *HashMap*) > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L155] > is typically protected by synchronization on *storageMap*, e.g., > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L294] > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L443] > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L484] > For a total of 9 locations. > The reason is because *HashMap* is not thread safe. > However, here: > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L455] > {{DatanodeStorageInfo storage =}} > {{ storageMap.get(report.getStorage().getStorageID());}} > It is not synchronized. > Note that in the same method: > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L484] > *storageMap* is again protected by synchronization: > {{synchronized (storageMap) {}} > {{ storageMapSize = storageMap.size();}} > {{}}} > > The CR I inlined above protected the above instance (line 455 ) with > synchronization > like in line 484 and in all other occurrences. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (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.
[ https://issues.apache.org/jira/browse/HDFS-14610?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16875301#comment-16875301 ] Paul Ward commented on HDFS-14610: -- I do not know why the tests fail and I am not familiar with Hadoop internals to debug the tests. However, note that the patch just adds a {{synchronized (storageMap) { }} at line 455 [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L455] just like the one at line 484 [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L484] Line 455 and 484 are in the same method body. I.e., this patch does not introduce a deadlock or such. Maybe the tests fail due to non-deterministic performance in the containers, like here ?: https://issues.apache.org/jira/browse/HDFS-14618 > HashMap is not thread safe. Field storageMap is typically synchronized by > storageMap. However, in one place, field storageMap is not protected with > synchronized. > - > > Key: HDFS-14610 > URL: https://issues.apache.org/jira/browse/HDFS-14610 > Project: Hadoop HDFS > Issue Type: Bug >Reporter: Paul Ward >Priority: Critical > Labels: fix-provided, patch-available > Attachments: addingSynchronization.patch > > > I submitted a CR for this issue at: > [https://github.com/apache/hadoop/pull/1015] > The field *storageMap* (a *HashMap*) > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L155] > is typically protected by synchronization on *storageMap*, e.g., > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L294] > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L443] > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L484] > For a total of 9 locations. > The reason is because *HashMap* is not thread safe. > However, here: > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L455] > {{DatanodeStorageInfo storage =}} > {{ storageMap.get(report.getStorage().getStorageID());}} > It is not synchronized. > Note that in the same method: > [https://github.com/apache/hadoop/blob/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/blockmanagement/DatanodeDescriptor.java#L484] > *storageMap* is again protected by synchronization: > {{synchronized (storageMap) {}} > {{ storageMapSize = storageMap.size();}} > {{}}} > > The CR I inlined above protected the above instance (line 455 ) with > synchronization > like in line 484 and in all other occurrences. -- This message was sent by Atlassian JIRA (v7.6.3#76005) - To unsubscribe, e-mail: hdfs-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: hdfs-issues-h...@hadoop.apache.org
[jira] [Commented] (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.
[ https://issues.apache.org/jira/browse/HDFS-14610?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16875254#comment-16875254 ] Hadoop QA commented on HDFS-14610: -- | (x) *{color:red}-1 overall{color}* | \\ \\ || Vote || Subsystem || Runtime || Comment || | {color:blue}0{color} | {color:blue} reexec {color} | {color:blue} 0m 15s{color} | {color:blue} Docker mode activated. {color} | || || || || {color:brown} Prechecks {color} || | {color:green}+1{color} | {color:green} @author {color} | {color:green} 0m 0s{color} | {color:green} The patch does not contain any @author tags. {color} | | {color:red}-1{color} | {color:red} test4tests {color} | {color:red} 0m 0s{color} | {color:red} The patch doesn't appear to include any new or modified tests. Please justify why no new tests are needed for this patch. Also please list what manual steps were performed to verify this patch. {color} | || || || || {color:brown} trunk Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 21m 17s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 1m 3s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 43s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 8s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 13m 16s{color} | {color:green} branch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 2m 8s{color} | {color:green} trunk passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 49s{color} | {color:green} trunk passed {color} | || || || || {color:brown} Patch Compile Tests {color} || | {color:green}+1{color} | {color:green} mvninstall {color} | {color:green} 0m 59s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} compile {color} | {color:green} 0m 54s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javac {color} | {color:green} 0m 54s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} checkstyle {color} | {color:green} 0m 39s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} mvnsite {color} | {color:green} 1m 1s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} whitespace {color} | {color:green} 0m 0s{color} | {color:green} The patch has no whitespace issues. {color} | | {color:green}+1{color} | {color:green} shadedclient {color} | {color:green} 12m 36s{color} | {color:green} patch has no errors when building and testing our client artifacts. {color} | | {color:green}+1{color} | {color:green} findbugs {color} | {color:green} 2m 16s{color} | {color:green} the patch passed {color} | | {color:green}+1{color} | {color:green} javadoc {color} | {color:green} 0m 48s{color} | {color:green} the patch passed {color} | || || || || {color:brown} Other Tests {color} || | {color:red}-1{color} | {color:red} unit {color} | {color:red} 89m 5s{color} | {color:red} hadoop-hdfs in the patch failed. {color} | | {color:green}+1{color} | {color:green} asflicense {color} | {color:green} 0m 36s{color} | {color:green} The patch does not generate ASF License warnings. {color} | | {color:black}{color} | {color:black} {color} | {color:black}149m 24s{color} | {color:black} {color} | \\ \\ || Reason || Tests || | Failed junit tests | hadoop.hdfs.server.datanode.TestDirectoryScanner | | | hadoop.hdfs.web.TestWebHdfsTimeouts | | | hadoop.hdfs.server.namenode.ha.TestDFSUpgradeWithHA | \\ \\ || Subsystem || Report/Notes || | Docker | Client=17.05.0-ce Server=17.05.0-ce Image:yetus/hadoop:bdbca0e | | JIRA Issue | HDFS-14610 | | JIRA Patch URL | https://issues.apache.org/jira/secure/attachment/12973204/addingSynchronization.patch | | Optional Tests | dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient findbugs checkstyle | | uname | Linux 1ada8d067ff3 4.4.0-143-generic #169~14.04.2-Ubuntu SMP Wed Feb 13 15:00:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux | | Build tool | maven | | Personality | /testptch/patchprocess/precommit/personality/provided.sh | | git revision | trunk / f02b0e1 | | maven | version: Apache Maven 3.3.9 | | Default Java | 1.8.0_212 | | findbugs | v3.1.0-RC1 | | unit | https://builds.apache.org/job/PreCommit-HDFS-Build/27109/artifact/out/patch-unit-hadoop-hdfs-project_hadoop-hdfs.txt | | Test Results | https://builds.apache.org/job/PreCommit-HDFS-Build/27109/testReport/ | | Max. process+thread count | 3492