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

Wrong compaction report and assert when MOB compaction switches to minor

    XMLWordPrintableJSON

Details

    • Reviewed

    Description

      when zookeeper is down during a major compaction or a sweep tool run in progress, we switch to a minor.

      try {
        zk = MobZookeeper.newInstance(this.conf, compactionName);
      } catch (KeeperException e) {
        LOG.error("Cannot connect to the zookeeper, ready to perform the minor compaction instead", e);
        // change the major compaction into a minor one
        compaction.getRequest().setIsMajor(false);
        return super.compact(compaction);
      }
      

      but the "request start" (HRegion.reportCompactionRequestStart) is "major" and increments the major-compactions counter
      while the "request end" (HRegion.reportCompactionRequestEnd) is "minor" and decrements the minor-compactions counter
      triggering the assert newValue >= 0, since we are decrementing the wrong counter

      Attachments

        1. HBASE-12030.patch
          7 kB
          Anoop Sam John
        2. HBASE-12030-V2.diff
          14 kB
          Jingcheng Du
        3. HBASE-12030_V3.patch
          13 kB
          Anoop Sam John

        Activity

          People

            anoop.hbase Anoop Sam John
            mbertozzi Matteo Bertozzi
            Votes:
            0 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: