[ 
https://issues.apache.org/jira/browse/HBASE-7966?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13590399#comment-13590399
 ] 

Gary Helmling commented on HBASE-7966:
--------------------------------------

In TestTablePermissions, shouldn't the following be blocking until the 
{{_acl_}} table is available?
{code:java}
    // Wait for the ACL table to become available
    UTIL.waitTableEnabled(AccessControlLists.ACL_TABLE_NAME);
{code}

This is in TestTablePermissions.beforeClass(), before any other table creation 
is attempted.  Actually since this opens a scanner on meta, maybe this is 
causing the exception...  Might be worth doing a "git bisect" to track down 
when the test started failing, though it's possible the race was just being 
masked before.

We could add another API for a special class of system tables, but that adds 
some complexity and deserves to be thought out on it's own.  Or, we could block 
in the test instead on the AccessController.postStartMaster() operation 
completing.

I think we should get the tests running reliably.  But I'm not sure it's worth 
trying to add a general mechanism for all distributed operations to block until 
{{_acl_}} is available.
                
> ACL tests fail on trunk (flaky)
> -------------------------------
>
>                 Key: HBASE-7966
>                 URL: https://issues.apache.org/jira/browse/HBASE-7966
>             Project: HBase
>          Issue Type: Bug
>          Components: security
>            Reporter: Enis Soztutar
>            Assignee: Enis Soztutar
>             Fix For: 0.95.0, 0.98.0
>
>
> I've noticed that these tests fail for me quite frequently:
> {code}
>   org.apache.hadoop.hbase.security.access.TestTablePermissions: 
> org.apache.hadoop.hbase.exceptions.TableNotFoundException: _acl_
>   
> testQualifierAccess(org.apache.hadoop.hbase.security.access.TestAccessControlFilter):
>  org.apache.hadoop.hbase.exceptions.TableNotFoundException: _acl_
> {code}
> The root cause seems to be that, the AccessController only creates the table 
> in HMaster.postStartMaster(), but before _acl_ is created, master start 
> accepting other create table requests, hence race. 

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to