aboutsummaryrefslogtreecommitdiff
path: root/exec/java-exec/src/main
diff options
context:
space:
mode:
authorAditya Kishore <aditya@maprtech.com>2014-07-24 20:07:21 -0700
committerJacques Nadeau <jacques@apache.org>2014-07-25 14:34:12 -0700
commit2a4d6f1911d86f6a58a175cd1278c06a2d7cade9 (patch)
tree96a1c15e8ecc3ff628e57eaedb5357d4b80c4b87 /exec/java-exec/src/main
parentdab9629ae58c7e5e0cf56d76477e0afdb1c2f371 (diff)
DRILL-785: org.apache.drill.exec.rpc.bit.ListenerPool leak suspects
Diffstat (limited to 'exec/java-exec/src/main')
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/rpc/control/WorkEventBus.java6
-rw-r--r--exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/QueryManager.java2
2 files changed, 5 insertions, 3 deletions
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/rpc/control/WorkEventBus.java b/exec/java-exec/src/main/java/org/apache/drill/exec/rpc/control/WorkEventBus.java
index bc10d4b94..28050eb60 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/rpc/control/WorkEventBus.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/rpc/control/WorkEventBus.java
@@ -49,9 +49,9 @@ public class WorkEventBus {
this.bee = bee;
}
- public void removeFragmentStatusListener(FragmentHandle handle) throws RpcException {
- logger.debug("Removing framgent status listener for handle {}.", handle);
- listeners.remove(handle);
+ public void removeFragmentStatusListener(QueryId queryId) {
+ logger.debug("Removing framgent status listener for queryId {}.", queryId);
+ listeners.remove(queryId);
}
public void setFragmentStatusListener(QueryId queryId, FragmentStatusListener listener) throws RpcException {
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/QueryManager.java b/exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/QueryManager.java
index f0c1edee3..ed1a42816 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/QueryManager.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/work/foreman/QueryManager.java
@@ -174,6 +174,7 @@ public class QueryManager implements FragmentStatusListener{
.setQueryId(queryId) //
.build();
foremanManagerListener.cleanupAndSendResult(result);
+ workBus.removeFragmentStatusListener(queryId);
}
this.status.setEndTime(System.currentTimeMillis());
this.status.incrementFinishedFragments();
@@ -190,6 +191,7 @@ public class QueryManager implements FragmentStatusListener{
private void stopQuery(){
+ workBus.removeFragmentStatusListener(queryId);
// Stop all queries with a currently active status.
// for(FragmentData data: map.values()){
// FragmentHandle handle = data.getStatus().getHandle();