----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/25915/ -----------------------------------------------------------
Review request for accumulo and kturner. Bugs: ACCUMULO-3135 https://issues.apache.org/jira/browse/ACCUMULO-3135 Repository: accumulo Description ------- The server-side implementations of the table operations typically follow the pattern of: accept table name, get table id, check permission, run table operation. Fetching the table id does a (trusted) check of whether or not the table that was requested to operate upon actually exists or not (we don't want to blindly accept table IDs from users in most cases). However, there is a race condition in which a table may be deleted after we fetch the table ID and before we can check the permissions for the user on said table. SecurityOperation only throws ThriftSecurityExceptions. While this makes sense in the context of the SecurityOperation class, we have to translate a ThriftSecurityException for a nonexistent table into a ThriftTableOperationException so that the client implementation will throw a TableNotFoundException instead of an AccumuloSecurityException. Diffs ----- server/src/main/java/org/apache/accumulo/server/master/Master.java 12f8fed Diff: https://reviews.apache.org/r/25915/diff/ Testing ------- Ran unit tests so far. Will do some contrived testing modifying TabletServer to sleep in necessary area to expose this bug (haven't come up with a better way to test this yet without heavy mocking). Thanks, Josh Elser