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

[VisibilityController] Tolerate regions in recovery

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Blocker
    • Resolution: Fixed
    • 0.98.0
    • 0.98.0, 0.99.0
    • None
    • None
    • Reviewed

    Description

      Ted Yu reports that enabling distributed log replay by default, like:

      Index: hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java
      ===================================================================
      --- hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java	(revision 1550575)
      +++ hbase-common/src/main/java/org/apache/hadoop/hbase/HConstants.java	(working copy)
      @@ -794,7 +794,7 @@
      
         /** Conf key that enables unflushed WAL edits directly being replayed to region servers */
         public static final String DISTRIBUTED_LOG_REPLAY_KEY = "hbase.master.distributed.log.replay";
      -  public static final boolean DEFAULT_DISTRIBUTED_LOG_REPLAY_CONFIG = false;
      +  public static final boolean DEFAULT_DISTRIBUTED_LOG_REPLAY_CONFIG = true;
         public static final String DISALLOW_WRITES_IN_RECOVERING =
             "hbase.regionserver.disallow.writes.when.recovering";
         public static final boolean DEFAULT_DISALLOW_WRITES_IN_RECOVERING_CONFIG = false;
      

      causes TestVisibilityController#testAddVisibilityLabelsOnRSRestart to fail. It reveals an issue with label operations if the label table is recovering:

      2013-12-12 14:53:53,133 DEBUG [RpcServer.handler=2,port=58108] visibility.VisibilityController(1046): Adding the label XYZ2013-12-12 14:53:53,137 ERROR [RpcServer.handler=2,port=58108] visibility.VisibilityController(1074): org.apache.hadoop.hbase.exceptions.RegionInRecoveryException: hbase:labels,,1386888826648.f14a399ba85cbb42c2c3b7547bf17c65. is recovering
      2013-12-12 14:53:53,151 DEBUG [main] visibility.TestVisibilityLabels(405): response from addLabels: result {
        exception {
          name: "org.apache.hadoop.hbase.exceptions.RegionInRecoveryException"
          value: "org.apache.hadoop.hbase.exceptions.RegionInRecoveryException: hbase:labels,,1386888826648.f14a399ba85cbb42c2c3b7547bf17c65. is recovering at org.apache.hadoop.hbase.regionserver.HRegion.startRegionOperation(HRegion.java:5555) at org.apache.hadoop.hbase.regionserver.HRegion.getScanner(HRegion.java:1763) at org.apache.hadoop.hbase.regionserver.HRegion.getScanner(HRegion.java:1749) at org.apache.hadoop.hbase.security.visibility.VisibilityController.getExistingLabelsWithAuths(VisibilityController.java:1096) at org.apache.hadoop.hbase.security.visibility.VisibilityController.postBatchMutate(VisibilityController.java:672)"
      

      Should we try to ride over this?

      Attachments

        1. HBASE-10148_V2.patch
          12 kB
          Anoop Sam John
        2. HBASE-10148_V3.patch
          12 kB
          Anoop Sam John
        3. HBASE-10148.patch
          11 kB
          Anoop Sam John

        Issue Links

          Activity

            People

              anoop.hbase Anoop Sam John
              apurtell Andrew Kyle Purtell
              Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: