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>";