[
https://issues.apache.org/jira/browse/BOOKKEEPER-493?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sijie Guo updated BOOKKEEPER-493:
---------------------------------
Attachment: BOOKKEEPER-493.diff
Attach a patch to exclude old ledger dir when pick a new ledger dir to move
index file. Adding a test case for LedgerDirsManager.
> moveLedgerIndexFile might have chance pickup same directory
> -----------------------------------------------------------
>
> Key: BOOKKEEPER-493
> URL: https://issues.apache.org/jira/browse/BOOKKEEPER-493
> Project: Bookkeeper
> Issue Type: Bug
> Reporter: Sijie Guo
> Fix For: 4.2.0
>
> Attachments: BOOKKEEPER-493.diff
>
>
> {code}
> public void addToFilledDirs(File dir) {
> if (!filledDirs.contains(dir)) {
> LOG.warn(dir + " is out of space."
> + " Adding it to filled dirs list");
> // Update filled dirs list
> List<File> updatedFilledDirs = new ArrayList<File>(filledDirs);
> updatedFilledDirs.add(dir);
> filledDirs = updatedFilledDirs;
> // Update the writable ledgers list
> List<File> newDirs = new
> ArrayList<File>(writableLedgerDirectories);
> newDirs.removeAll(filledDirs);
> writableLedgerDirectories = newDirs;
> // Notify listeners about disk full
> for (LedgerDirsListener listener : listeners) {
> listener.diskFull(dir);
> }
> }
> }
> {code}
> When a directory is putting into filledDirs, it might not be removed from
> writableLedgerDirectories. The directory still has chance to be picked up to
> move index file.
> we need same synchronization and check to guarantee that we don't move to
> same directory.
--
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