hadoop-hdfs-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eli Collins (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HDFS-4058) DirectoryScanner may fail with IOOB if the directory scanning threads return out of volume order
Date Tue, 16 Oct 2012 02:09:03 GMT

     [ https://issues.apache.org/jira/browse/HDFS-4058?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Eli Collins updated HDFS-4058:
------------------------------

    Attachment: hdfs-4058.txt

Thanks Andy and ATM. I've updated the code with a comment per your suggestion.  

It's hard to write a new test for this one because to reproduce it both the threads *and*
the compilersInProgress entry set needs to be out of order. Ie the test would need to eg change
the code to iterate over the futures in reverse order.
                
> DirectoryScanner may fail with IOOB if the directory scanning threads return out of volume
order
> ------------------------------------------------------------------------------------------------
>
>                 Key: HDFS-4058
>                 URL: https://issues.apache.org/jira/browse/HDFS-4058
>             Project: Hadoop HDFS
>          Issue Type: Improvement
>          Components: data-node
>    Affects Versions: 2.0.0-alpha
>            Reporter: Eli Collins
>            Assignee: Eli Collins
>         Attachments: hdfs-4058.txt, hdfs-4058.txt
>
>
> The DirectoryScanner may fail with an IOOB if the directory scanning threads return out
of volume order (ie volume scanner #3 returns before volume scanner #2). This is because it's
using an ArrayList and ArrayList#add(index, element) throws IOOB if idx >= size, and size
is only increased as elements are added, therefore adds have to be done in index order. Since
we know the size when we create the ArrayList let's just use an array (perhaps an ArrayList
was used originally because someone thought array creation called the default constructor?).

--
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

Mime
View raw message