hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Purtell (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-10148) [VisibilityController] Tolerate regions in recovery
Date Fri, 13 Dec 2013 16:29:09 GMT

    [ 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)

Mime
View raw message