[ https://issues.apache.org/jira/browse/HBASE-12030?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14145013#comment-14145013 ]
Matteo Bertozzi commented on HBASE-12030: ----------------------------------------- looks ok to me, it will be nice having a test to cover the path when zk throws an exception.. maybe the easiest way there is mocking zk? > Wrong compaction report and assert when MOB compaction switches to minor > ------------------------------------------------------------------------ > > Key: HBASE-12030 > URL: https://issues.apache.org/jira/browse/HBASE-12030 > Project: HBase > Issue Type: Bug > Components: Compaction, regionserver > Affects Versions: hbase-11339 > Reporter: Matteo Bertozzi > Priority: Critical > Fix For: hbase-11339 > > Attachments: HBASE-12030.patch > > > when zookeeper is down during a major compaction or a sweep tool run in > progress, we switch to a minor. > {code} > 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); > } > {code} > 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 -- This message was sent by Atlassian JIRA (v6.3.4#6332)