From 58335fd73f1176b8a4019575fc7100a30ae27765 Mon Sep 17 00:00:00 2001 From: fjy Date: Thu, 23 May 2013 11:51:44 -0600 Subject: [PATCH] tony the tiger must love logs beacuse they are grrreeeat --- .../java/com/metamx/druid/client/BrokerServerView.java | 10 ++++------ .../metamx/druid/client/CachingClusteredClient.java | 9 ++++++++- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/client/src/main/java/com/metamx/druid/client/BrokerServerView.java b/client/src/main/java/com/metamx/druid/client/BrokerServerView.java index c340544e908..25c05536390 100644 --- a/client/src/main/java/com/metamx/druid/client/BrokerServerView.java +++ b/client/src/main/java/com/metamx/druid/client/BrokerServerView.java @@ -129,15 +129,13 @@ public class BrokerServerView implements TimelineServerView private QueryableDruidServer addServer(DruidServer server) { - QueryableDruidServer exists = clients.put( - server.getName(), - new QueryableDruidServer(server, makeDirectClient(server)) - ); + QueryableDruidServer retVal = new QueryableDruidServer(server, makeDirectClient(server)); + QueryableDruidServer exists = clients.put(server.getName(), retVal); if (exists != null) { - log.warn("QueryRunner for server[%s] already existed!?", server); + log.warn("QueryRunner for server[%s] already existed!? Well it's getting replaced", server); } - return exists; + return retVal; } private DirectDruidClient makeDirectClient(DruidServer server) diff --git a/client/src/main/java/com/metamx/druid/client/CachingClusteredClient.java b/client/src/main/java/com/metamx/druid/client/CachingClusteredClient.java index eba9b399ccd..6e3c052c4b3 100644 --- a/client/src/main/java/com/metamx/druid/client/CachingClusteredClient.java +++ b/client/src/main/java/com/metamx/druid/client/CachingClusteredClient.java @@ -44,6 +44,7 @@ import com.metamx.druid.TimelineObjectHolder; import com.metamx.druid.VersionedIntervalTimeline; import com.metamx.druid.aggregation.AggregatorFactory; import com.metamx.druid.client.cache.Cache; +import com.metamx.druid.client.selector.QueryableDruidServer; import com.metamx.druid.client.selector.ServerSelector; import com.metamx.druid.partition.PartitionChunk; import com.metamx.druid.query.CacheStrategy; @@ -203,7 +204,13 @@ public class CachingClusteredClient implements QueryRunner // Compile list of all segments not pulled from cache for(Pair segment : segments) { - final DruidServer server = segment.lhs.pick().getServer(); + final QueryableDruidServer queryableDruidServer = segment.lhs.pick(); + + if (queryableDruidServer == null) { + log.error("No servers found for %s?! How can this be?!", segment.rhs); + } + + final DruidServer server = queryableDruidServer.getServer(); List descriptors = serverSegments.get(server); if (descriptors == null) {