Uploaded image for project: 'HBase'
  1. HBase
  2. HBASE-4878

Master crash when splitting hlog may cause data loss

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.92.0
    • 0.92.0, 0.94.0
    • None
    • None
    • Reviewed

    Description

      Let's see the code of HlogSplitter#splitLog(final FileStatus[] logfiles)

      private List<Path> splitLog(final FileStatus[] logfiles) throws IOException {
       try {
        for (FileStatus log : logfiles) {
        parseHLog(in, logPath, entryBuffers, fs, conf, skipErrors);
       }
       archiveLogs(srcDir, corruptedLogs, processedLogs, oldLogDir, fs, conf);
       } finally {
            status.setStatus("Finishing writing output logs and closing down.");
            splits = outputSink.finishWritingAndClose();
          }
      }
      

      If master is killed, after finishing archiveLogs(srcDir, corruptedLogs, processedLogs, oldLogDir, fs, conf),
      but before finishing splits = outputSink.finishWritingAndClose();
      Log date would loss!

      Attachments

        1. hbase-4878.diff
          0.8 kB
          Chunhui Shen
        2. hbase-4878v2.patch
          0.9 kB
          Chunhui Shen

        Activity

          People

            zjushch Chunhui Shen
            zjushch Chunhui Shen
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: