You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@accumulo.apache.org by "Keith Turner (Created) (JIRA)" <ji...@apache.org> on 2012/01/05 23:00:39 UTC

[jira] [Created] (ACCUMULO-270) Cache consistency bug in ClientServiceHandler.checkTableId()

Cache consistency bug in ClientServiceHandler.checkTableId()
------------------------------------------------------------

                 Key: ACCUMULO-270
                 URL: https://issues.apache.org/jira/browse/ACCUMULO-270
             Project: Accumulo
          Issue Type: Bug
    Affects Versions: 1.4.0
            Reporter: Keith Turner


While running the random walk test on 10 node cluster the security random walk test failed.

{noformat}
Caused by: org.apache.accumulo.core.client.AccumuloSecurityException: Error TABLE_DOESNT_EXIST - Unknown security exception
        at org.apache.accumulo.core.client.admin.SecurityOperationsImpl.execute(SecurityOperationsImpl.java:70)
        at org.apache.accumulo.core.client.admin.SecurityOperationsImpl.hasTablePermission(SecurityOperationsImpl.java:269)
        at org.apache.accumulo.server.test.randomwalk.security.AlterTablePerm.alter(AlterTablePerm.java:81)
{noformat}

The test was trying to check permissions on a table, and got an error saying that the table did not exist.  Looking at the master logs it seems like the table was created about 40ms before the check.  The hasTablePermission code chooses a random tablet server to do the check.  I suspect the zoo cache on the random tablet server was not yet updated.  Many places in the 1.4 code have the pattern that if something fails, then clear the cache and retry.  The code that threw the table not found exception does not do this, but needs to.  org.apache.accumulo.server.client.ClientServiceHandler.checkTableId() or something it calls should clear the cache and retry when it thinks the table does not exist.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (ACCUMULO-270) Cache consistency bug in ClientServiceHandler.checkTableId()

Posted by "Keith Turner (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ACCUMULO-270?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Keith Turner updated ACCUMULO-270:
----------------------------------

    Component/s: tserver
    
> Cache consistency bug in ClientServiceHandler.checkTableId()
> ------------------------------------------------------------
>
>                 Key: ACCUMULO-270
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-270
>             Project: Accumulo
>          Issue Type: Bug
>          Components: tserver
>            Reporter: Keith Turner
>             Fix For: 1.4.0
>
>
> While running the random walk test on 10 node cluster the security random walk test failed.
> {noformat}
> Caused by: org.apache.accumulo.core.client.AccumuloSecurityException: Error TABLE_DOESNT_EXIST - Unknown security exception
>         at org.apache.accumulo.core.client.admin.SecurityOperationsImpl.execute(SecurityOperationsImpl.java:70)
>         at org.apache.accumulo.core.client.admin.SecurityOperationsImpl.hasTablePermission(SecurityOperationsImpl.java:269)
>         at org.apache.accumulo.server.test.randomwalk.security.AlterTablePerm.alter(AlterTablePerm.java:81)
> {noformat}
> The test was trying to check permissions on a table, and got an error saying that the table did not exist.  Looking at the master logs it seems like the table was created about 40ms before the check.  The hasTablePermission code chooses a random tablet server to do the check.  I suspect the zoo cache on the random tablet server was not yet updated.  Many places in the 1.4 code have the pattern that if something fails, then clear the cache and retry.  The code that threw the table not found exception does not do this, but needs to.  org.apache.accumulo.server.client.ClientServiceHandler.checkTableId() or something it calls should clear the cache and retry when it thinks the table does not exist.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Updated] (ACCUMULO-270) Cache consistency bug in ClientServiceHandler.checkTableId()

Posted by "Keith Turner (Updated) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ACCUMULO-270?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Keith Turner updated ACCUMULO-270:
----------------------------------

    Affects Version/s:     (was: 1.4.0)
        Fix Version/s: 1.4.0
    
> Cache consistency bug in ClientServiceHandler.checkTableId()
> ------------------------------------------------------------
>
>                 Key: ACCUMULO-270
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-270
>             Project: Accumulo
>          Issue Type: Bug
>            Reporter: Keith Turner
>             Fix For: 1.4.0
>
>
> While running the random walk test on 10 node cluster the security random walk test failed.
> {noformat}
> Caused by: org.apache.accumulo.core.client.AccumuloSecurityException: Error TABLE_DOESNT_EXIST - Unknown security exception
>         at org.apache.accumulo.core.client.admin.SecurityOperationsImpl.execute(SecurityOperationsImpl.java:70)
>         at org.apache.accumulo.core.client.admin.SecurityOperationsImpl.hasTablePermission(SecurityOperationsImpl.java:269)
>         at org.apache.accumulo.server.test.randomwalk.security.AlterTablePerm.alter(AlterTablePerm.java:81)
> {noformat}
> The test was trying to check permissions on a table, and got an error saying that the table did not exist.  Looking at the master logs it seems like the table was created about 40ms before the check.  The hasTablePermission code chooses a random tablet server to do the check.  I suspect the zoo cache on the random tablet server was not yet updated.  Many places in the 1.4 code have the pattern that if something fails, then clear the cache and retry.  The code that threw the table not found exception does not do this, but needs to.  org.apache.accumulo.server.client.ClientServiceHandler.checkTableId() or something it calls should clear the cache and retry when it thinks the table does not exist.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Resolved] (ACCUMULO-270) Cache consistency bug in ClientServiceHandler.checkTableId()

Posted by "Keith Turner (Resolved) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/ACCUMULO-270?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Keith Turner resolved ACCUMULO-270.
-----------------------------------

    Resolution: Fixed
      Assignee: Keith Turner
    
> Cache consistency bug in ClientServiceHandler.checkTableId()
> ------------------------------------------------------------
>
>                 Key: ACCUMULO-270
>                 URL: https://issues.apache.org/jira/browse/ACCUMULO-270
>             Project: Accumulo
>          Issue Type: Bug
>          Components: tserver
>            Reporter: Keith Turner
>            Assignee: Keith Turner
>             Fix For: 1.4.0
>
>
> While running the random walk test on 10 node cluster the security random walk test failed.
> {noformat}
> Caused by: org.apache.accumulo.core.client.AccumuloSecurityException: Error TABLE_DOESNT_EXIST - Unknown security exception
>         at org.apache.accumulo.core.client.admin.SecurityOperationsImpl.execute(SecurityOperationsImpl.java:70)
>         at org.apache.accumulo.core.client.admin.SecurityOperationsImpl.hasTablePermission(SecurityOperationsImpl.java:269)
>         at org.apache.accumulo.server.test.randomwalk.security.AlterTablePerm.alter(AlterTablePerm.java:81)
> {noformat}
> The test was trying to check permissions on a table, and got an error saying that the table did not exist.  Looking at the master logs it seems like the table was created about 40ms before the check.  The hasTablePermission code chooses a random tablet server to do the check.  I suspect the zoo cache on the random tablet server was not yet updated.  Many places in the 1.4 code have the pattern that if something fails, then clear the cache and retry.  The code that threw the table not found exception does not do this, but needs to.  org.apache.accumulo.server.client.ClientServiceHandler.checkTableId() or something it calls should clear the cache and retry when it thinks the table does not exist.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira