diff --git a/indexing-service/src/main/java/io/druid/indexing/common/task/AbstractTask.java b/indexing-service/src/main/java/io/druid/indexing/common/task/AbstractTask.java index ffbc75d33c41178d9a6b979ef6ed93f75d935200..f03c552b656c43df3c0007c69b60d88481ccc31b 100644 --- a/indexing-service/src/main/java/io/druid/indexing/common/task/AbstractTask.java +++ b/indexing-service/src/main/java/io/druid/indexing/common/task/AbstractTask.java @@ -61,8 +61,8 @@ public abstract class AbstractTask implements Task protected AbstractTask(String id, String groupId, TaskResource taskResource, String dataSource) { - this.id = Preconditions.checkNotNull(id.toLowerCase(), "id"); - this.groupId = Preconditions.checkNotNull(groupId.toLowerCase(), "groupId"); + this.id = Preconditions.checkNotNull(id, "id"); + this.groupId = Preconditions.checkNotNull(groupId, "groupId"); this.taskResource = Preconditions.checkNotNull(taskResource, "resource"); this.dataSource = Preconditions.checkNotNull(dataSource.toLowerCase(), "dataSource"); } diff --git a/server/src/main/java/io/druid/server/router/QueryHostFinder.java b/server/src/main/java/io/druid/server/router/QueryHostFinder.java index 3355f77b22bf010d93c1ffa6132c0bd0c8e87916..ea32b8fbd5ea7ed80e8d7ce3cb3944d20512249a 100644 --- a/server/src/main/java/io/druid/server/router/QueryHostFinder.java +++ b/server/src/main/java/io/druid/server/router/QueryHostFinder.java @@ -50,10 +50,14 @@ public class QueryHostFinder { final Pair selected = hostSelector.select(query); - final String serviceName = selected.lhs; - final ServerDiscoverySelector selector = selected.rhs; + if (selected == null) { + log.error("Danger, Will Robinson! Unable to find any brokers!"); + } + + final String serviceName = selected == null ? hostSelector.getDefaultServiceName() : selected.lhs; + final ServerDiscoverySelector selector = selected == null ? null : selected.rhs; - Server server = selector.pick(); + Server server = selector == null ? null : selector.pick(); if (server == null) { log.error( "WTF?! No server found for serviceName[%s]. Using backup", diff --git a/server/src/main/java/io/druid/server/router/TieredBrokerHostSelector.java b/server/src/main/java/io/druid/server/router/TieredBrokerHostSelector.java index 9e5db5084eb13eb5eec98879b00afc50b447c097..9778c3b1d6df87278beec60aa2ef058be1755cff 100644 --- a/server/src/main/java/io/druid/server/router/TieredBrokerHostSelector.java +++ b/server/src/main/java/io/druid/server/router/TieredBrokerHostSelector.java @@ -122,7 +122,7 @@ public class TieredBrokerHostSelector implements HostSelector { synchronized (lock) { if (!ruleManager.isStarted() || !started) { - return null; + return getDefaultLookup(); } } @@ -157,7 +157,7 @@ public class TieredBrokerHostSelector implements HostSelector } if (baseRule == null) { - return null; + return getDefaultLookup(); } // in the baseRule, find the broker of highest priority @@ -192,4 +192,11 @@ public class TieredBrokerHostSelector implements HostSelector return new Pair<>(brokerServiceName, retVal); } + + private Pair getDefaultLookup() + { + final String brokerServiceName = tierConfig.getDefaultBrokerServiceName(); + final ServerDiscoverySelector retVal = selectorMap.get(brokerServiceName); + return new Pair<>(brokerServiceName, retVal); + } } diff --git a/server/src/test/java/io/druid/server/router/TieredBrokerHostSelectorTest.java b/server/src/test/java/io/druid/server/router/TieredBrokerHostSelectorTest.java index b2a22af38ec793b96eceae0df6b220a4423cfc2c..6d058d200fa0c97bb2e479f700798bbcda9f6718 100644 --- a/server/src/test/java/io/druid/server/router/TieredBrokerHostSelectorTest.java +++ b/server/src/test/java/io/druid/server/router/TieredBrokerHostSelectorTest.java @@ -142,19 +142,18 @@ public class TieredBrokerHostSelectorTest @Test public void testSelectMatchesNothing() throws Exception { - Pair retVal = brokerSelector.select( + String brokerName = (String) brokerSelector.select( Druids.newTimeseriesQueryBuilder() .dataSource("test") .granularity("all") .aggregators(Arrays.asList(new CountAggregatorFactory("rows"))) .intervals(Arrays.asList(new Interval("2010-08-31/2010-09-01"))) .build() - ); + ).lhs; - Assert.assertEquals(null, retVal); + Assert.assertEquals("hotBroker", brokerName); } - @Test public void testSelectMultiInterval() throws Exception { diff --git a/services/src/main/java/io/druid/cli/RouterJettyServerInitializer.java b/services/src/main/java/io/druid/cli/RouterJettyServerInitializer.java index 62d93caacf33c59787d80e3723f8642d4f50dc9a..54c3a7f69e41abd72d74adc0ccc2c19746e4d46d 100644 --- a/services/src/main/java/io/druid/cli/RouterJettyServerInitializer.java +++ b/services/src/main/java/io/druid/cli/RouterJettyServerInitializer.java @@ -86,6 +86,7 @@ public class RouterJettyServerInitializer implements JettyServerInitializer ), "/druid/v2/*" ); queries.addFilter(GzipFilter.class, "/druid/v2/*", null); + queries.addFilter(GuiceFilter.class, "/status/*", null); final ServletContextHandler root = new ServletContextHandler(ServletContextHandler.SESSIONS); root.addServlet(new ServletHolder(new DefaultServlet()), "/*");