Github user dvjyothsna commented on a diff in the pull request: https://github.com/apache/drill/pull/921#discussion_r150992676 --- Diff: exec/java-exec/src/main/java/org/apache/drill/exec/work/WorkManager.java --- @@ -165,32 +169,59 @@ public DrillbitContext getContext() { * * <p>This is intended to be used by {@link org.apache.drill.exec.server.Drillbit#close()}.</p> */ - public void waitToExit() { + public void waitToExit(Drillbit bit, boolean forcefulShutdown) { synchronized(this) { - if (queries.isEmpty() && runningFragments.isEmpty()) { + numOfRunningQueries = queries.size(); + numOfRunningFragments = runningFragments.size(); + if ( queries.isEmpty() && runningFragments.isEmpty()) { return; } - + logger.info("Draining " + queries +" queries and "+ runningFragments+" fragments."); exitLatch = new ExtendedLatch(); } - - // Wait for at most 5 seconds or until the latch is released. - exitLatch.awaitUninterruptibly(5000); + // Wait uninterruptibly until all the queries and running fragments on that drillbit goes down + // to zero + if( forcefulShutdown ) { + exitLatch.awaitUninterruptibly(5000); --- End diff -- This was the default one that existed before. That is the reason I didn't changed it.
---