Make Realtime queries not submit to thread pools for the master merger

Fix https://github.com/druid-io/druid/issues/1111
This commit is contained in:
Charles Allen 2015-02-11 15:43:51 -08:00
parent 8410023b6e
commit e116600c7f
1 changed files with 2 additions and 1 deletions

View File

@ -24,6 +24,7 @@ import com.google.common.base.Preconditions;
import com.google.common.base.Throwables; import com.google.common.base.Throwables;
import com.google.common.collect.Iterables; import com.google.common.collect.Iterables;
import com.google.common.collect.Maps; import com.google.common.collect.Maps;
import com.google.common.util.concurrent.MoreExecutors;
import com.google.inject.Inject; import com.google.inject.Inject;
import com.metamx.common.guava.CloseQuietly; import com.metamx.common.guava.CloseQuietly;
import com.metamx.common.lifecycle.LifecycleStart; import com.metamx.common.lifecycle.LifecycleStart;
@ -158,7 +159,7 @@ public class RealtimeManager implements QuerySegmentWalker
Iterable<FireChief> chiefsOfDataSource = chiefs.get(input); Iterable<FireChief> chiefsOfDataSource = chiefs.get(input);
return chiefsOfDataSource == null ? new NoopQueryRunner() : factory.getToolchest().mergeResults( return chiefsOfDataSource == null ? new NoopQueryRunner() : factory.getToolchest().mergeResults(
factory.mergeRunners( factory.mergeRunners(
executorService, MoreExecutors.sameThreadExecutor(), // Chaining query runners which wait on submitted chain query runners can make executor pools deadlock
Iterables.transform( Iterables.transform(
chiefsOfDataSource, new Function<FireChief, QueryRunner<T>>() chiefsOfDataSource, new Function<FireChief, QueryRunner<T>>()
{ {