Uploaded image for project: 'Hadoop Common'
  1. Hadoop Common
  2. HADOOP-4579

StorageDirectory is not removed from the storage directories list when writing to an edits fails

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 0.20.0
    • Component/s: None
    • Labels:
      None

      Description

      If there is an IO Error on any log operations the directory should be removed from the list of active storage directories.
      when it happens function FSEditLog:processIOError() is called.

      in this function:
      ....
      File parentStorageDir = ((EditLogFileOutputStream)editStreams.get(index)).getFile().getParentFile().getParentFile(); – which returns root
      ....
      fsimage.processIOErrors(parentStorageDir);
      ...

      which calles FSImage:ProcessIOErrors(dir).
      but when dir is compared against list of storage dirs getParent is used instead of getPath()
      so the match is never found.
      ....
      if (sd.getRoot().getPath().equals(dirName.getParent())) { - should be dirName.getPath()
      .....

        Attachments

        1. hadoop4579.patch
          0.6 kB
          Boris Shkolnik

          Activity

            People

            • Assignee:
              boryas Boris Shkolnik
              Reporter:
              boryas Boris Shkolnik
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: