You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by al...@apache.org on 2012/12/08 18:48:23 UTC
[2/2] git commit: Catch and log UAE in Auth#setup instead of
propagating
Catch and log UAE in Auth#setup instead of propagating
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/dbbca5e2
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/dbbca5e2
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/dbbca5e2
Branch: refs/heads/cassandra-1.2
Commit: dbbca5e296d969550caca3519125dfe9f3f9a657
Parents: 62b9037
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Sat Dec 8 20:44:20 2012 +0300
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Sat Dec 8 20:44:20 2012 +0300
----------------------------------------------------------------------
src/java/org/apache/cassandra/auth/Auth.java | 22 +++++++++++++++-----
1 files changed, 16 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/dbbca5e2/src/java/org/apache/cassandra/auth/Auth.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/auth/Auth.java b/src/java/org/apache/cassandra/auth/Auth.java
index 123ffe6..6791455 100644
--- a/src/java/org/apache/cassandra/auth/Auth.java
+++ b/src/java/org/apache/cassandra/auth/Auth.java
@@ -20,6 +20,8 @@ package org.apache.cassandra.auth;
import java.util.concurrent.TimeUnit;
import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.apache.cassandra.config.DatabaseDescriptor;
import org.apache.cassandra.cql3.UntypedResultSet;
@@ -27,10 +29,11 @@ import org.apache.cassandra.cql3.QueryProcessor;
import org.apache.cassandra.exceptions.UnavailableException;
import org.apache.cassandra.service.MigrationManager;
import org.apache.cassandra.service.StorageService;
-import org.apache.cassandra.utils.WrappedRunnable;
public class Auth
{
+ private static final Logger logger = LoggerFactory.getLogger(Auth.class);
+
public static final String DEFAULT_SUPERUSER_NAME = "cassandra";
public static final String AUTH_KS = "system_auth";
@@ -115,13 +118,20 @@ public class Auth
MigrationManager.instance.register(new MigrationListener());
// schedule seeding a superuser in RING_DELAY milliseconds.
- Runnable runnable = new WrappedRunnable()
+ Runnable runnable = new Runnable()
{
- public void runMayThrow() throws UnavailableException
+ public void run()
{
- // insert a default superuser if AUTH_KS.USERS_CF is empty.
- if (QueryProcessor.process(String.format("SELECT * FROM %s.%s", AUTH_KS, USERS_CF)).isEmpty())
- insertUser(DEFAULT_SUPERUSER_NAME, true);
+ try
+ {
+ // insert a default superuser if AUTH_KS.USERS_CF is empty.
+ if (QueryProcessor.process(String.format("SELECT * FROM %s.%s", AUTH_KS, USERS_CF)).isEmpty())
+ insertUser(DEFAULT_SUPERUSER_NAME, true);
+ }
+ catch (UnavailableException e)
+ {
+ logger.warn("Skipping default superuser setup: some nodes are unavailable");
+ }
}
};
StorageService.tasks.schedule(runnable, StorageService.RING_DELAY, TimeUnit.MILLISECONDS);