Uploaded image for project: 'Bookkeeper'
  1. Bookkeeper
  2. BOOKKEEPER-493

moveLedgerIndexFile might have chance pickup same directory

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 4.2.0
    • None
    • None

    Description

          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);
                  }   
              }   
          }
      
      

      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.

      Attachments

        1. BOOKKEEPER-493.diff
          9 kB
          Sijie Guo

        Activity

          People

            hustlmsp Sijie Guo
            hustlmsp Sijie Guo
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: