From daa6267e85673af9cd085efcf34d82e9aa3303bd Mon Sep 17 00:00:00 2001 From: Jonathan Ellis Date: Tue, 13 Sep 2011 17:29:56 +0000 Subject: [PATCH] clarify "No other nodes seen! Unable to bootstrap" error message patch by jbellis; reviewed by slebresne for CASSANDRA-3191 git-svn-id: https://svn.apache.org/repos/asf/cassandra/branches/cassandra-1.0.0@1170257 13f79535-47bb-0310-9956-ffa450edef68 --- conf/cassandra.yaml | 4 ++-- src/java/org/apache/cassandra/dht/BootStrapper.java | 7 ++++++- .../cassandra/service/AbstractCassandraDaemon.java | 10 +++++----- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/conf/cassandra.yaml b/conf/cassandra.yaml index 7a7c125205..9a1f8bcf0a 100644 --- a/conf/cassandra.yaml +++ b/conf/cassandra.yaml @@ -84,8 +84,8 @@ saved_caches_directory: /var/lib/cassandra/saved_caches commitlog_sync: periodic commitlog_sync_period_in_ms: 10000 -# any class that implements the SeedProvider interface and has a constructor that takes a Map of -# parameters will do. +# any class that implements the SeedProvider interface and has a +# constructor that takes a Map of parameters will do. seed_provider: # Addresses of hosts that are deemed contact points. # Cassandra nodes use this list of hosts to find each other and learn diff --git a/src/java/org/apache/cassandra/dht/BootStrapper.java b/src/java/org/apache/cassandra/dht/BootStrapper.java index d957146f69..90f4ee43b9 100644 --- a/src/java/org/apache/cassandra/dht/BootStrapper.java +++ b/src/java/org/apache/cassandra/dht/BootStrapper.java @@ -165,7 +165,12 @@ public class BootStrapper } if (endpoints.isEmpty()) - throw new RuntimeException("No other nodes seen! Unable to bootstrap"); + throw new RuntimeException("No other nodes seen! Unable to bootstrap." + + "If you intended to start a single-node cluster, you should make sure " + + "your broadcast_address (or listen_address) is listed as a seed. " + + "Otherwise, you need to determine why the seed being contacted " + + "has no knowledge of the rest of the cluster. Usually, this can be solved " + + "by giving all nodes the same seed list."); Collections.sort(endpoints, new Comparator() { public int compare(InetAddress ia1, InetAddress ia2) diff --git a/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java b/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java index 12e82e9974..09ad3d5c74 100644 --- a/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java +++ b/src/java/org/apache/cassandra/service/AbstractCassandraDaemon.java @@ -346,15 +346,15 @@ public abstract class AbstractCassandraDaemon implements CassandraDaemon } start(); - } catch (Throwable e) + } + catch (Throwable e) { - String msg = "Exception encountered during startup."; - logger.error(msg, e); + logger.error("Exception encountered during startup", e); // try to warn user on stdout too, if we haven't already detached - System.out.println(msg); e.printStackTrace(); - + System.out.println("Exception encountered during startup: " + e.getMessage()); + System.exit(3); } }