accumulo-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mmil...@apache.org
Subject [accumulo-testing] 02/02: ACCUMULO-4717 Update TableOp to handle error codes
Date Wed, 25 Oct 2017 22:42:52 GMT
This is an automated email from the ASF dual-hosted git repository.

mmiller pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/accumulo-testing.git

commit c152795044001178491a961392b7438d3d23dfc9
Author: Mike Miller <mmiller@apache.org>
AuthorDate: Wed Oct 25 18:40:38 2017 -0400

    ACCUMULO-4717 Update TableOp to handle error codes
---
 .../testing/core/randomwalk/security/TableOp.java  | 25 +++++++---------------
 1 file changed, 8 insertions(+), 17 deletions(-)

diff --git a/core/src/main/java/org/apache/accumulo/testing/core/randomwalk/security/TableOp.java
b/core/src/main/java/org/apache/accumulo/testing/core/randomwalk/security/TableOp.java
index 7513b23..2fee84f 100644
--- a/core/src/main/java/org/apache/accumulo/testing/core/randomwalk/security/TableOp.java
+++ b/core/src/main/java/org/apache/accumulo/testing/core/randomwalk/security/TableOp.java
@@ -19,6 +19,7 @@ package org.apache.accumulo.testing.core.randomwalk.security;
 import static java.nio.charset.StandardCharsets.UTF_8;
 
 import java.util.Iterator;
+import java.util.Map;
 import java.util.Map.Entry;
 import java.util.Properties;
 import java.util.Random;
@@ -161,7 +162,6 @@ public class TableOp extends Test {
             throw new AccumuloException("Table didn't exist when it should have: " + tableName,
ase);
           return;
         }
-        boolean ambiguousZone = WalkingSecurity.get(state, env).inAmbiguousZone(conn.whoami(),
tp);
 
         String key = WalkingSecurity.get(state, env).getLastKey() + "1";
         Mutation m = new Mutation(new Text(key));
@@ -182,24 +182,15 @@ public class TableOp extends Test {
             writer.addMutation(m);
             writer.close();
           } catch (MutationsRejectedException mre) {
-            // Currently no method for detecting reason for mre.
-            // Waiting on ACCUMULO-670
-            // For now, just wait a second and go again if they can
-            // write!
-            if (!canWrite)
-              return;
-
-            if (ambiguousZone) {
-              Thread.sleep(1000);
-              try {
-                writer = conn.createBatchWriter(tableName, new BatchWriterConfig().setMaxWriteThreads(1));
-                writer.addMutation(m);
-                writer.close();
-                writer = null;
-              } catch (MutationsRejectedException mre2) {
-                throw new AccumuloException("Mutation exception!", mre2);
+            if (mre.getSecurityErrorCodes().size() == 1) {
+              // TabletServerBatchWriter will log the error automatically so make sure its
the error we expect
+              SecurityErrorCode errorCode = mre.getSecurityErrorCodes().entrySet().iterator().next().getValue().iterator().next();
+              if (errorCode.equals(SecurityErrorCode.PERMISSION_DENIED) && !canWrite)
{
+                log.info("Caught MutationsRejectedException({}) in TableOp.WRITE as expected.",
errorCode);
+                return;
               }
             }
+            throw new AccumuloException("Unexpected MutationsRejectedException in TableOp.WRITE",
mre);
           }
           if (works)
             for (String s : WalkingSecurity.get(state, env).getAuthsArray())

-- 
To stop receiving notification emails like this one, please contact
"commits@accumulo.apache.org" <commits@accumulo.apache.org>.

Mime
View raw message