Manoj Govindassamy created HDFS-11267:
-----------------------------------------

             Summary: Avoid redefinition of storageDirs in NNStorage and 
cleanup its accessors in Storage
                 Key: HDFS-11267
                 URL: https://issues.apache.org/jira/browse/HDFS-11267
             Project: Hadoop HDFS
          Issue Type: Bug
    Affects Versions: 3.0.0-alpha1
            Reporter: Manoj Govindassamy
            Assignee: Manoj Govindassamy



In the abstract class {{Storage}}, {{storageDirs}} is a protected variable and 
all its derived classes like {{NNStorage}}, {{JNStorage}}, {{DataStorage}}.. 
are iterating over this non-thread safe variable without any proper locks. Any 
parallel modification operation like add or remove volume can mutate the 
backing storageDirs list and any iterators on this list around the  same time 
can face {{ConcurrentModificationException}}. It would be good to make the 
variable private and restrict the access via getters and setters. Any thread 
safe restriction need to be done can then be placed on the parent class only.

Also, {{NNStorage}} redefines parent class Storage's {{storageDirs}}, making it 
inconsistent with other derived classes. Would be cleaner if {{NNStorage}} can 
avoid re-defining it locally.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-dev-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-dev-h...@hadoop.apache.org

Reply via email to