You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by be...@apache.org on 2021/11/30 05:53:24 UTC

[cassandra] branch trunk updated: Flaky GrantAndRevokeTest

This is an automated email from the ASF dual-hosted git repository.

bereng pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git


The following commit(s) were added to refs/heads/trunk by this push:
     new f47e4b2  Flaky GrantAndRevokeTest
f47e4b2 is described below

commit f47e4b294dd0512d8bec5f8cddd3142fa7c1867a
Author: Bereng <be...@gmail.com>
AuthorDate: Mon Nov 29 11:52:45 2021 +0100

    Flaky GrantAndRevokeTest
    
    patch by Berenguer Blasi; reviewed by Brandon Williams for CASSANDRA-17173
---
 .../apache/cassandra/auth/GrantAndRevokeTest.java  | 94 +++++++++++++++++++---
 1 file changed, 82 insertions(+), 12 deletions(-)

diff --git a/test/unit/org/apache/cassandra/auth/GrantAndRevokeTest.java b/test/unit/org/apache/cassandra/auth/GrantAndRevokeTest.java
index 2d1cded..41ae8d2 100644
--- a/test/unit/org/apache/cassandra/auth/GrantAndRevokeTest.java
+++ b/test/unit/org/apache/cassandra/auth/GrantAndRevokeTest.java
@@ -21,6 +21,7 @@ import org.junit.After;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
+import org.apache.cassandra.Util;
 import org.apache.cassandra.config.DatabaseDescriptor;
 import org.apache.cassandra.cql3.CQLTester;
 
@@ -61,8 +62,20 @@ public class GrantAndRevokeTest extends CQLTester
         useUser(user, pass);
 
         // ALTER and DROP tables created by somebody else
-        assertUnauthorizedQuery("User user has no MODIFY permission on <table " + table + "> or any of its parents",
-                                formatQuery(KEYSPACE_PER_TEST, "INSERT INTO %s (pk, ck, val, val_2) VALUES (1, 1, 1, '1')"));
+        // Spin assert for effective auth changes.
+        final String spinAssertTable = table;
+        Util.spinAssertEquals(false, () -> {
+            try
+            {
+                assertUnauthorizedQuery("User user has no MODIFY permission on <table " + spinAssertTable + "> or any of its parents",
+                                        formatQuery(KEYSPACE_PER_TEST, "INSERT INTO %s (pk, ck, val, val_2) VALUES (1, 1, 1, '1')"));
+            }
+            catch(Throwable e)
+            {
+                return true;
+            }
+            return false;
+        }, 10);
         assertUnauthorizedQuery("User user has no MODIFY permission on <table " + table + "> or any of its parents",
                                 formatQuery(KEYSPACE_PER_TEST, "UPDATE %s SET val = 1 WHERE pk = 1 AND ck = 1"));
         assertUnauthorizedQuery("User user has no MODIFY permission on <table " + table + "> or any of its parents",
@@ -93,7 +106,18 @@ public class GrantAndRevokeTest extends CQLTester
 
         useUser(user, pass);
 
-        executeNet("ALTER KEYSPACE " + KEYSPACE_PER_TEST + " WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}");
+        // Spin assert for effective auth changes.
+        Util.spinAssertEquals(false, () -> {
+            try
+            {
+                executeNet("ALTER KEYSPACE " + KEYSPACE_PER_TEST + " WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}");
+            }
+            catch(Throwable e)
+            {
+                return true;
+            }
+            return false;
+        }, 10);
 
         executeNet(formatQuery(KEYSPACE_PER_TEST, "INSERT INTO %s (pk, ck, val, val_2) VALUES (1, 1, 1, '1')"));
         executeNet(formatQuery(KEYSPACE_PER_TEST, "UPDATE %s SET val = 1 WHERE pk = 1 AND ck = 1"));
@@ -139,8 +163,20 @@ public class GrantAndRevokeTest extends CQLTester
 
         useUser(user, pass);
 
-        assertUnauthorizedQuery("User user has no MODIFY permission on <table " + table + "> or any of its parents",
-                                "INSERT INTO " + table + " (pk, ck, val, val_2) VALUES (1, 1, 1, '1')");
+        // Spin assert for effective auth changes.
+        final String spinAssertTable2 = table;
+        Util.spinAssertEquals(false, () -> {
+            try
+            {
+                assertUnauthorizedQuery("User user has no MODIFY permission on <table " + spinAssertTable2 + "> or any of its parents",
+                                        "INSERT INTO " + spinAssertTable2 + " (pk, ck, val, val_2) VALUES (1, 1, 1, '1')");
+            }
+            catch(Throwable e)
+            {
+                return true;
+            }
+            return false;
+        }, 10);
         assertUnauthorizedQuery("User user has no MODIFY permission on <table " + table + "> or any of its parents",
                                 "UPDATE " + table + " SET val = 1 WHERE pk = 1 AND ck = 1");
         assertUnauthorizedQuery("User user has no MODIFY permission on <table " + table + "> or any of its parents",
@@ -182,8 +218,20 @@ public class GrantAndRevokeTest extends CQLTester
         useUser(user, pass);
 
         // ALTER and DROP tables created by somebody else
-        assertUnauthorizedQuery("User user has no MODIFY permission on <table " + table + "> or any of its parents",
-                                formatQuery(KEYSPACE_PER_TEST, "INSERT INTO %s (pk, ck, val, val_2) VALUES (1, 1, 1, '1')"));
+        // Spin assert for effective auth changes.
+        final String spinAssertTable = table;
+        Util.spinAssertEquals(false, () -> {
+            try
+            {
+                assertUnauthorizedQuery("User user has no MODIFY permission on <table " + spinAssertTable + "> or any of its parents",
+                                        formatQuery(KEYSPACE_PER_TEST, "INSERT INTO %s (pk, ck, val, val_2) VALUES (1, 1, 1, '1')"));
+            }
+            catch(Throwable e)
+            {
+                return true;
+            }
+            return false;
+        }, 10);
         assertUnauthorizedQuery("User user has no MODIFY permission on <table " + table + "> or any of its parents",
                                 formatQuery(KEYSPACE_PER_TEST, "UPDATE %s SET val = 1 WHERE pk = 1 AND ck = 1"));
         assertUnauthorizedQuery("User user has no MODIFY permission on <table " + table + "> or any of its parents",
@@ -213,9 +261,19 @@ public class GrantAndRevokeTest extends CQLTester
 
         useUser(user, pass);
 
-        assertUnauthorizedQuery("User user has no ALTER permission on <keyspace " + KEYSPACE_PER_TEST + "> or any of its parents",
-                                "ALTER KEYSPACE " + KEYSPACE_PER_TEST + " WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}");
-
+        // Spin assert for effective auth changes.
+        Util.spinAssertEquals(false, () -> {
+            try
+            {
+                assertUnauthorizedQuery("User user has no ALTER permission on <keyspace " + KEYSPACE_PER_TEST + "> or any of its parents",
+                                        "ALTER KEYSPACE " + KEYSPACE_PER_TEST + " WITH replication = {'class': 'SimpleStrategy', 'replication_factor': '1'}");
+            }
+            catch(Throwable e)
+            {
+                return true;
+            }
+            return false;
+        }, 10);
         executeNet(formatQuery(KEYSPACE_PER_TEST, "INSERT INTO %s (pk, ck, val, val_2) VALUES (1, 1, 1, '1')"));
         executeNet(formatQuery(KEYSPACE_PER_TEST, "UPDATE %s SET val = 1 WHERE pk = 1 AND ck = 1"));
         executeNet(formatQuery(KEYSPACE_PER_TEST, "DELETE FROM %s WHERE pk = 1 AND ck = 2"));
@@ -262,8 +320,20 @@ public class GrantAndRevokeTest extends CQLTester
 
         useUser(user, pass);
 
-        assertUnauthorizedQuery("User user has no MODIFY permission on <table " + table + "> or any of its parents",
-                                "INSERT INTO " + table + " (pk, ck, val, val_2) VALUES (1, 1, 1, '1')");
+        // Spin assert for effective auth changes.
+        final String spinAssertTable2 = table;
+        Util.spinAssertEquals(false, () -> {
+            try
+            {
+                assertUnauthorizedQuery("User user has no MODIFY permission on <table " + spinAssertTable2 + "> or any of its parents",
+                                        "INSERT INTO " + spinAssertTable2 + " (pk, ck, val, val_2) VALUES (1, 1, 1, '1')");
+            }
+            catch(Throwable e)
+            {
+                return true;
+            }
+            return false;
+        }, 10);
         assertUnauthorizedQuery("User user has no MODIFY permission on <table " + table + "> or any of its parents",
                                 "UPDATE " + table + " SET val = 1 WHERE pk = 1 AND ck = 1");
         assertUnauthorizedQuery("User user has no MODIFY permission on <table " + table + "> or any of its parents",

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org