Author: cwiklik
Date: Wed Sep 12 19:19:49 2018
New Revision: 1840741

URL: http://svn.apache.org/viewvc?rev=1840741&view=rev
Log:
UIMA-5794 Modified to use new method sigKill() and changed killIt() to 
sigTermThanSigKill()

Modified:
    
uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/NodeAgent.java

Modified: 
uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/NodeAgent.java
URL: 
http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/NodeAgent.java?rev=1840741&r1=1840740&r2=1840741&view=diff
==============================================================================
--- 
uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/NodeAgent.java
 (original)
+++ 
uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/NodeAgent.java
 Wed Sep 12 19:19:49 2018
@@ -1395,7 +1395,8 @@ public class NodeAgent extends AbstractD
             logger.info(methodName, null,
                     "----------- Agent Stopped ProcessMemoryUsagePollingRouter 
for Process:"
                             + duccEvent.getPid() + ". Process Failed 
Initialization");
-            undeployProcess(processEntry.getValue());
+            //undeployProcess(processEntry.getValue());
+            sigKill(deployedProcess);
 
           } else if 
(duccEvent.getState().equals(ProcessState.InitializationTimeout)) {
             deployedProcess.getDuccProcess().setReasonForStoppingProcess(
@@ -1409,8 +1410,8 @@ public class NodeAgent extends AbstractD
             logger.info(methodName, null, ">>>> Agent Handling Process 
InitializationTimeout. PID:"
                     + duccEvent.getPid() + " Killing Process");
 
-            undeployProcess(processEntry.getValue());
-
+            //undeployProcess(processEntry.getValue());
+            sigKill(deployedProcess);
           }
           else if (duccEvent.getState().equals(ProcessState.Stopping)) {
                  if ( duccEvent.getMessage() != null && 
duccEvent.getMessage().equals(ReasonForStoppingProcess.ExceededErrorThreshold.toString()))
 {
@@ -1674,8 +1675,32 @@ public class NodeAgent extends AbstractD
          }
 
       }
-
-       private void killIt(IDuccProcess process, ManagedProcess 
deployedProcess) {
+      
+      private void sigKill(ManagedProcess deployedProcess) {
+         String methodName = "sigKill";
+         String[] cmdLine = { "/bin/kill", "-9", 
deployedProcess.getDuccProcess().getPID() };
+         
+         try {
+                 ProcessBuilder pb = new ProcessBuilder(cmdLine);
+                 Process process = pb.start();
+                 InputStream is = process.getInputStream();
+                 InputStreamReader streamReader = new InputStreamReader(is);
+                 BufferedReader br = new BufferedReader(streamReader);
+                 String line;
+                 while ((line = br.readLine()) != null) {
+                         System.out.println(line);
+                 }
+                 try {
+                         process.waitFor();
+                 } catch (InterruptedException ie) {
+                         logger.error(methodName, null, ie);
+                 }
+         } catch (Exception e) {
+                 logger.error(methodName, null, e);
+         }
+         
+      }
+       private void sigTermThanSigKill(IDuccProcess process, ManagedProcess 
deployedProcess) {
                String methodName = "killIt";
                // Mark the process as stopping. When the process exits,
                // the agent can determine
@@ -1742,7 +1767,7 @@ public class NodeAgent extends AbstractD
                 logger.info(methodName, null, ">>>> Undeploying Process - 
DuccId:" + process.getDuccId()
                    + " PID:" + pid);
 
-                       killIt(process, deployedProcess);
+                sigTermThanSigKill(process, deployedProcess);
                }
             break; // this process is already in stopping state
           }
@@ -1750,7 +1775,7 @@ public class NodeAgent extends AbstractD
               logger.info(methodName, null, "....Undeploying Process - 
DuccId:" + process.getDuccId()
                    + " PID:" + pid);
 
-              killIt(process, deployedProcess);
+              sigTermThanSigKill(process, deployedProcess);
 
           } else if (!deployedProcess.getDuccProcess().getProcessState()
                   .equals(ProcessState.Stopped)) { // process


Reply via email to