You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flume.apache.org by es...@apache.org on 2011/08/17 22:55:57 UTC

svn commit: r1158909 - /incubator/flume/branches/flume-728/flume-ng-core/src/main/java/org/apache/flume/LogicalNode.java

Author: esammer
Date: Wed Aug 17 20:55:56 2011
New Revision: 1158909

URL: http://svn.apache.org/viewvc?rev=1158909&view=rev
Log:
- We now wait a limited amount of time before interrupting the driver on shutdown.

Modified:
    incubator/flume/branches/flume-728/flume-ng-core/src/main/java/org/apache/flume/LogicalNode.java

Modified: incubator/flume/branches/flume-728/flume-ng-core/src/main/java/org/apache/flume/LogicalNode.java
URL: http://svn.apache.org/viewvc/incubator/flume/branches/flume-728/flume-ng-core/src/main/java/org/apache/flume/LogicalNode.java?rev=1158909&r1=1158908&r2=1158909&view=diff
==============================================================================
--- incubator/flume/branches/flume-728/flume-ng-core/src/main/java/org/apache/flume/LogicalNode.java (original)
+++ incubator/flume/branches/flume-728/flume-ng-core/src/main/java/org/apache/flume/LogicalNode.java Wed Aug 17 20:55:56 2011
@@ -142,18 +142,15 @@ public class LogicalNode implements Life
     if (driver.getLifecycleState().equals(LifecycleState.START)) {
       driver.setShouldStop(true);
 
-      while (driver.isAlive()) {
-        logger.debug("Waiting for driver to stop");
+      logger.debug("Waiting for driver to stop");
 
-        /* If we're interrupted during a stop, we just fail. */
-        try {
-          driver.join();
-        } catch (InterruptedException e) {
-          logger
-              .error("Interrupted while waiting for driver thread to stop", e);
-          lifecycleState = LifecycleState.ERROR;
-          break;
-        }
+      /* If we can't stop within N seconds, we just interrupt and give up. */
+      try {
+        driver.join(10000);
+        driver.interrupt();
+      } catch (InterruptedException e) {
+        logger
+            .debug("Timed out while waiting for driver to finish (normal source / sink are blocking)");
       }
     }