You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2011/01/31 16:40:48 UTC
svn commit: r1065654 - in
/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra:
config/DatabaseDescriptor.java service/AbstractCassandraDaemon.java
service/StorageService.java
Author: jbellis
Date: Mon Jan 31 15:40:48 2011
New Revision: 1065654
URL: http://svn.apache.org/viewvc?rev=1065654&view=rev
Log:
more informative error messages for configuration problems
patch by jbellis
Modified:
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageService.java
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/config/DatabaseDescriptor.java?rev=1065654&r1=1065653&r2=1065654&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/config/DatabaseDescriptor.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/config/DatabaseDescriptor.java Mon Jan 31 15:40:48 2011
@@ -120,8 +120,17 @@ public class DatabaseDescriptor
{
URL url = getStorageConfigURL();
logger.info("Loading settings from " + url);
-
- InputStream input = url.openStream();
+
+ InputStream input = null;
+ try
+ {
+ input = url.openStream();
+ }
+ catch (IOException e)
+ {
+ // getStorageConfigURL should have ruled this out
+ throw new AssertionError(e);
+ }
org.yaml.snakeyaml.constructor.Constructor constructor = new org.yaml.snakeyaml.constructor.Constructor(Config.class);
TypeDescription desc = new TypeDescription(Config.class);
desc.putListPropertyType("keyspaces", RawKeyspace.class);
@@ -253,7 +262,16 @@ public class DatabaseDescriptor
/* Local IP or hostname to bind RPC server to */
if (conf.rpc_address != null)
- rpcAddress = InetAddress.getByName(conf.rpc_address);
+ {
+ try
+ {
+ rpcAddress = InetAddress.getByName(conf.rpc_address);
+ }
+ catch (UnknownHostException e)
+ {
+ throw new ConfigurationException("Unknown host in rpc_address " + conf.rpc_address);
+ }
+ }
if (conf.thrift_framed_transport_size_in_mb > 0 && conf.thrift_max_message_length_in_mb < conf.thrift_framed_transport_size_in_mb)
{
@@ -291,6 +309,10 @@ public class DatabaseDescriptor
{
throw new ConfigurationException("Invalid Request Scheduler class " + conf.request_scheduler);
}
+ catch (Exception e)
+ {
+ throw new ConfigurationException("Unable to instantiate request scheduler", e);
+ }
}
else
{
@@ -369,31 +391,28 @@ public class DatabaseDescriptor
}
for (String seedString : conf.seeds)
{
- seeds.add(InetAddress.getByName(seedString));
+ try
+ {
+ seeds.add(InetAddress.getByName(seedString));
+ }
+ catch (UnknownHostException e)
+ {
+ throw new ConfigurationException("Unknown seed " + seedString + ". Consider using IP addresses instead of host names");
+ }
}
}
- catch (UnknownHostException e)
- {
- logger.error("Fatal configuration error ", e);
- System.err.println("Unable to start with unknown hosts configured. Use IP addresses instead of hostnames.");
- System.exit(2);
- }
catch (ConfigurationException e)
{
logger.error("Fatal configuration error", e);
- System.err.println("Bad configuration; unable to start server");
+ System.err.println(e.getMessage() + "\nFatal configuration error; unable to start server. See log for stacktrace.");
System.exit(1);
}
catch (YAMLException e)
{
logger.error("Fatal configuration error error", e);
- System.err.println("Bad configuration; unable to start server");
+ System.err.println(e.getMessage() + "\nInvalid yaml; unable to start server. See log for stacktrace.");
System.exit(1);
}
- catch (Exception e)
- {
- throw new RuntimeException(e);
- }
}
private static IEndpointSnitch createEndpointSnitch(String endpointSnitchClassName) throws ConfigurationException
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java?rev=1065654&r1=1065653&r2=1065654&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java Mon Jan 31 15:40:48 2011
@@ -190,8 +190,8 @@ public abstract class AbstractCassandraD
}
catch (ConfigurationException e)
{
- logger.error("Fatal error: " + e.getMessage());
- System.err.println("Bad configuration; unable to start server");
+ logger.error("Fatal configuration error", e);
+ System.err.println(e.getMessage() + "\nFatal configuration error; unable to start server. See log for stacktrace.");
System.exit(1);
}
@@ -214,8 +214,7 @@ public abstract class AbstractCassandraD
/**
* Start the Cassandra Daemon, assuming that it has already been
- * initialized, via either {@link #init(String[])} or
- * {@link #load(String[])}.
+ * initialized via {@link #init(String[])}
*
* Hook for JSVC
*
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageService.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageService.java?rev=1065654&r1=1065653&r2=1065654&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageService.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageService.java Mon Jan 31 15:40:48 2011
@@ -149,6 +149,9 @@ public class StorageService implements I
public static final RetryingScheduledThreadPoolExecutor scheduledTasks = new RetryingScheduledThreadPoolExecutor("ScheduledTasks");
+ /* This abstraction maintains the token/endpoint metadata information */
+ private TokenMetadata tokenMetadata_ = new TokenMetadata();
+
private static IPartitioner partitioner_ = DatabaseDescriptor.getPartitioner();
public static VersionedValue.VersionedValueFactory valueFactory = new VersionedValue.VersionedValueFactory(partitioner_);
@@ -168,9 +171,6 @@ public class StorageService implements I
return getPrimaryRangeForEndpoint(FBUtilities.getLocalAddress());
}
- /* This abstraction maintains the token/endpoint metadata information */
- private TokenMetadata tokenMetadata_ = new TokenMetadata();
-
private Set<InetAddress> replicatingNodes = Collections.synchronizedSet(new HashSet<InetAddress>());
private CassandraDaemon daemon;