You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by de...@apache.org on 2016/12/16 19:06:04 UTC

svn commit: r1774652 - in /uima/uima-ducc/trunk: uima-ducc-database/src/main/java/org/apache/uima/ducc/database/ uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/ uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/ev...

Author: degenaro
Date: Fri Dec 16 19:06:04 2016
New Revision: 1774652

URL: http://svn.apache.org/viewvc?rev=1774652&view=rev
Log:
UIMA-52156 DUCC on process launch failure agent should set reason to content of stderr
- OR to copy Agent reported extended reason into corresponding IDuccProcess field
- HistoryManagerDB & IHistoryPersistentManager to include new IDuccProcess field extended reason
- WS uses extended reason for display if present, otherwise reason

Modified:
    uima/uima-ducc/trunk/uima-ducc-database/src/main/java/org/apache/uima/ducc/database/HistoryManagerDb.java
    uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/ProcessAccounting.java
    uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/history/IHistoryPersistenceManager.java
    uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java

Modified: uima/uima-ducc/trunk/uima-ducc-database/src/main/java/org/apache/uima/ducc/database/HistoryManagerDb.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-database/src/main/java/org/apache/uima/ducc/database/HistoryManagerDb.java?rev=1774652&r1=1774651&r2=1774652&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-database/src/main/java/org/apache/uima/ducc/database/HistoryManagerDb.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-database/src/main/java/org/apache/uima/ducc/database/HistoryManagerDb.java Fri Dec 16 19:06:04 2016
@@ -352,6 +352,7 @@ public class HistoryManagerDb
                         long pid = toInt(idp.getPID());
                         String node = getString(idp.getNodeIdentity().getName());
                         String reason_agent = getString(idp.getReasonForStoppingProcess()); // called "reason" in duccprocess but not in ws
+                        String extended_reason_agent = getString(idp.getExtendedReasonForStoppingProcess()); 
                         String reason_scheduler = getString(idp.getProcessDeallocationType().toString()); // called "processDeallocationType" in duccprocess but not in ws
                         int exit_code = idp.getProcessExitCode();
                         long cpu = idp.getCurrentCPU();
@@ -380,7 +381,7 @@ public class HistoryManagerDb
                             gctime = gcs.getCollectionTime();
                         }
                         h.execute(processDetailsPrepare, node, work_id, share_id, type, user, memory, processStart, processEnd, sclass,
-                                  pid, reason_agent, exit_code, reason_scheduler, cpu, swap, Math.max(0, (processEnd-processStart)), initTime,
+                                  pid, reason_agent, extended_reason_agent, exit_code, reason_scheduler, cpu, swap, Math.max(0, (processEnd-processStart)), initTime,
                                   initialized, investment, major_faults, gccount, gctime);
                     }
 

Modified: uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/ProcessAccounting.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/ProcessAccounting.java?rev=1774652&r1=1774651&r2=1774652&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/ProcessAccounting.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/ProcessAccounting.java Fri Dec 16 19:06:04 2016
@@ -330,6 +330,7 @@ public class ProcessAccounting {
 	private void setResourceStateAndReason(IDuccWorkJob job, IDuccProcess inventoryProcess, IDuccProcess process) {
 		String methodName = "setResourceStateAndReason";
 		logger.trace(methodName, job.getDuccId(), messages.fetch("enter"));
+		StringBuffer message;
 		switch(inventoryProcess.getProcessState()) {
 		case LaunchFailed:
 		case Stopped:
@@ -341,11 +342,28 @@ public class ProcessAccounting {
 			case Allocated:
 				OrUtil.setResourceState(job, process, ResourceState.Deallocated);
 				String reason = inventoryProcess.getReasonForStoppingProcess();
-				logger.info(methodName, job.getDuccId(), process.getDuccId(), messages.fetchLabel("process state")+inventoryProcess.getProcessState()+" => "+messages.fetchLabel("resource state")+process.getResourceState()+" : "+messages.fetchLabel("reason")+reason);
+				String extendedReason = inventoryProcess.getExtendedReasonForStoppingProcess();
+				message = new StringBuffer();
+				message.append(messages.fetchLabel("process state")+inventoryProcess.getProcessState());
+				message.append(" => "+messages.fetchLabel("resource state")+process.getResourceState());
+				message.append(" : "+messages.fetchLabel("reason")+reason);
+				if(extendedReason != null) {
+					message.append(", "+extendedReason);
+				}
+				logger.info(methodName, job.getDuccId(), process.getDuccId(), message.toString());
 				switch(inventoryProcess.getProcessState()) {
 				case Stopped:
 					if(reason != null) {
 						process.setReasonForStoppingProcess(reason);
+						process.setExtendedReasonForStoppingProcess(extendedReason);
+						message = new StringBuffer();
+						message.append(messages.fetchLabel("process state")+inventoryProcess.getProcessState());
+						message.append(" => "+messages.fetchLabel("resource state")+process.getResourceState());
+						message.append(" : "+messages.fetchLabel("reason")+reason);
+						if(extendedReason != null) {
+							message.append(", "+extendedReason);
+						}
+						logger.debug(methodName, job.getDuccId(), process.getDuccId(), message.toString());
 					}
 					process.setProcessDeallocationType(ProcessDeallocationType.AutonomousStop);
 					break;
@@ -353,6 +371,15 @@ public class ProcessAccounting {
 				case Failed:
 					if(reason != null) {
 						process.setReasonForStoppingProcess(reason);
+						process.setExtendedReasonForStoppingProcess(extendedReason);
+						message = new StringBuffer();
+						message.append(messages.fetchLabel("process state")+inventoryProcess.getProcessState());
+						message.append(" => "+messages.fetchLabel("resource state")+process.getResourceState());
+						message.append(" : "+messages.fetchLabel("reason")+reason);
+						if(extendedReason != null) {
+							message.append(", "+extendedReason);
+						}
+						logger.debug(methodName, job.getDuccId(), process.getDuccId(), message.toString());
 					}
 					process.setProcessDeallocationType(ProcessDeallocationType.Failed);
 					break;
@@ -360,12 +387,30 @@ public class ProcessAccounting {
 				case FailedInitialization:
 					if(reason != null) {
 						process.setReasonForStoppingProcess(reason);
+						process.setExtendedReasonForStoppingProcess(extendedReason);
+						message = new StringBuffer();
+						message.append(messages.fetchLabel("process state")+inventoryProcess.getProcessState());
+						message.append(" => "+messages.fetchLabel("resource state")+process.getResourceState());
+						message.append(" : "+messages.fetchLabel("reason")+reason);
+						if(extendedReason != null) {
+							message.append(", "+extendedReason);
+						}
+						logger.debug(methodName, job.getDuccId(), process.getDuccId(), message.toString());
 					}
 					process.setProcessDeallocationType(ProcessDeallocationType.FailedInitialization);
 					break;
 				case InitializationTimeout:
 					if(reason != null) {
 						process.setReasonForStoppingProcess(reason);
+						process.setExtendedReasonForStoppingProcess(extendedReason);
+						message = new StringBuffer();
+						message.append(messages.fetchLabel("process state")+inventoryProcess.getProcessState());
+						message.append(" => "+messages.fetchLabel("resource state")+process.getResourceState());
+						message.append(" : "+messages.fetchLabel("reason")+reason);
+						if(extendedReason != null) {
+							message.append(", "+extendedReason);
+						}
+						logger.debug(methodName, job.getDuccId(), process.getDuccId(), message.toString());
 					}
 					process.setProcessDeallocationType(ProcessDeallocationType.InitializationTimeout);
 					break;
@@ -373,6 +418,15 @@ public class ProcessAccounting {
 				case Killed:
 					if(reason != null) {
 						process.setReasonForStoppingProcess(reason);
+						process.setExtendedReasonForStoppingProcess(extendedReason);
+						message = new StringBuffer();
+						message.append(messages.fetchLabel("process state")+inventoryProcess.getProcessState());
+						message.append(" => "+messages.fetchLabel("resource state")+process.getResourceState());
+						message.append(" : "+messages.fetchLabel("reason")+reason);
+						if(extendedReason != null) {
+							message.append(", "+extendedReason);
+						}
+						logger.debug(methodName, job.getDuccId(), process.getDuccId(), message.toString());
 					}
 					process.setProcessDeallocationType(ProcessDeallocationType.Killed);
 					break;
@@ -436,14 +490,23 @@ public class ProcessAccounting {
 		case Killed:
 			String reasonNew = inventoryProcess.getReasonForStoppingProcess();
 			String reasonOld = process.getReasonForStoppingProcess();
+			String extendedReasonNew = inventoryProcess.getExtendedReasonForStoppingProcess();
 			if(reasonNew != null) {
 				if(reasonOld == null) {
 					process.setReasonForStoppingProcess(reasonNew);
 					logger.info(methodName, job.getDuccId(), process.getDuccId(), messages.fetchLabel("process reason code")+process.getReasonForStoppingProcess());
+					if(extendedReasonNew != null) {
+						process.setExtendedReasonForStoppingProcess(extendedReasonNew);
+						logger.info(methodName, job.getDuccId(), process.getDuccId(), messages.fetchLabel("process extended reason code")+process.getExtendedReasonForStoppingProcess());
+					}
 				}
 				else if(!reasonNew.equals(reasonOld)) {
 					process.setReasonForStoppingProcess(reasonNew);
 					logger.info(methodName, job.getDuccId(), process.getDuccId(), messages.fetchLabel("process reason code")+process.getReasonForStoppingProcess());
+					if(extendedReasonNew != null) {
+						process.setExtendedReasonForStoppingProcess(extendedReasonNew);
+						logger.info(methodName, job.getDuccId(), process.getDuccId(), messages.fetchLabel("process extended reason code")+process.getExtendedReasonForStoppingProcess());
+					}
 				}
 			}
 			

Modified: uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/history/IHistoryPersistenceManager.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/history/IHistoryPersistenceManager.java?rev=1774652&r1=1774651&r2=1774652&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/history/IHistoryPersistenceManager.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/history/IHistoryPersistenceManager.java Fri Dec 16 19:06:04 2016
@@ -220,6 +220,11 @@ public interface IHistoryPersistenceMana
             public Type type()            { return Type.String; }
         },
 
+        extended_reason_agent {
+            public String pname()         { return "extended_reason_agent"; }        
+            public Type type()            { return Type.String; }
+        },
+        
         exit_code {
             public String pname()         { return "exit_code"; }       
             public Type type()            { return Type.Integer; }

Modified: uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java?rev=1774652&r1=1774651&r2=1774652&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/DuccHandler.java Fri Dec 16 19:06:04 2016
@@ -554,7 +554,10 @@ public class DuccHandler extends DuccAbs
 	private String getReasonAgent(IDuccWorkJob job, IDuccProcess process) {
 		StringBuffer sb = new StringBuffer();
 		if(process != null) {
-			String agentReason = process.getReasonForStoppingProcess();
+			String agentReason = process.getExtendedReasonForStoppingProcess();
+			if(agentReason == null) {
+				agentReason = process.getReasonForStoppingProcess();
+			}
 			if(agentReason != null) {
 				if(agentReason.equalsIgnoreCase(ReasonForStoppingProcess.KilledByDucc.toString())) {
 					agentReason = "<div title=\""+ReasonForStoppingProcess.KilledByDucc.toString()+"\">Discontinued</div>";