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