[
https://issues.apache.org/jira/browse/HBASE-10148?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13847627#comment-13847627
]
Andrew Purtell commented on HBASE-10148:
----------------------------------------
Yes, a hook like postReplay could work. So we would check in postOpen if the
region isn't ready yet and defer to the new hook to finish init. This also
means we need to deny access to everything but the superuser until init is
finished, but as long as we document this as he price one pays for security
this should be ok.
> [VisibilityController] Tolerate regions in recovery
> ---------------------------------------------------
>
> Key: HBASE-10148
> URL: https://issues.apache.org/jira/browse/HBASE-10148
> Project: HBase
> Issue Type: Bug
> Affects Versions: 0.98.0
> Reporter: Andrew Purtell
> Assignee: Anoop Sam John
> Fix For: 0.98.0
>
>
> Ted Yu reports that enabling distributed log replay by default, like:
> {noformat}
> 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;
> {noformat}
> causes TestVisibilityController#testAddVisibilityLabelsOnRSRestart to fail.
> It reveals an issue with label operations if the label table is recovering:
> {noformat}
> 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)"
> {noformat}
> Should we try to ride over this?
--
This message was sent by Atlassian JIRA
(v6.1.4#6159)