[ 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