liang xie created HDFS-4359:
-------------------------------

             Summary: remove an unnecessary synchronized keyword in 
BPOfferService.java
                 Key: HDFS-4359
                 URL: https://issues.apache.org/jira/browse/HDFS-4359
             Project: Hadoop HDFS
          Issue Type: Bug
          Components: datanode
    Affects Versions: 2.0.2-alpha, 3.0.0
            Reporter: liang xie
            Assignee: liang xie


we encountered a NN&DN hung issue, the DN hung was caused by no NN response for 
heartbeat. Per DN thread dump, i think we can have a little improvement on this 
detail code :

  synchronized List<BPServiceActor> getBPServiceActors() {
    return Lists.newArrayList(bpServices);
  }

the bpServices is declared as :

  private List<BPServiceActor> bpServices =
    new CopyOnWriteArrayList<BPServiceActor>();

It's a thread-safe variant indead, so we can remove the above synchronized 
keyword safely, IMHO.

Here is a simple statistic for thread dump: 
xieliang@xieliang:/tmp$ grep 0x00000007b00289f0 dn.jstack |wc -l
252

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to