diff options
author | Sorabh Hamirwasia <sorabh@apache.org> | 2018-09-26 13:20:02 -0700 |
---|---|---|
committer | Sorabh Hamirwasia <sorabh@apache.org> | 2018-10-10 09:51:02 -0700 |
commit | de76e135316086386e2f7edd04ec1d5ca479bc59 (patch) | |
tree | 0726d0d7bd1273239573244d32fafb44d05bb079 /exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical | |
parent | 216b1237739935b04c4f54b3f6f05371a4644085 (diff) |
DRILL-6731: Resolving race conditions in RuntimeFilterSink
Add condition variable to avoid starvation of producer thread while acquiring queue lock
Diffstat (limited to 'exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical')
-rw-r--r-- | exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RuntimeFilterVisitor.java | 12 |
1 files changed, 2 insertions, 10 deletions
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RuntimeFilterVisitor.java b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RuntimeFilterVisitor.java index bfba5f2c1..fcfa2bca1 100644 --- a/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RuntimeFilterVisitor.java +++ b/exec/java-exec/src/main/java/org/apache/drill/exec/planner/physical/visitor/RuntimeFilterVisitor.java @@ -222,18 +222,10 @@ public class RuntimeFilterVisitor extends BasePrelVisitor<Prel, Void, RuntimeExc holder.setFromBuildSide(true); right.accept(this, holder); boolean routeToForeman = holder.needToRouteToForeman(); - if (!routeToForeman) { - runtimeFilterDef.setSendToForeman(false); - } else { - runtimeFilterDef.setSendToForeman(true); - } + runtimeFilterDef.setSendToForeman(routeToForeman); List<BloomFilterDef> bloomFilterDefs = runtimeFilterDef.getBloomFilterDefs(); for (BloomFilterDef bloomFilterDef : bloomFilterDefs) { - if (!routeToForeman) { - bloomFilterDef.setLocal(true); - } else { - bloomFilterDef.setLocal(false); - } + bloomFilterDef.setLocal(!routeToForeman); } } } |