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/07/12 19:37:56 UTC
svn commit: r1752339 - in /uima/uima-ducc/trunk:
uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/
uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/config/
uima-ducc-transport/src/main/java/org/apache/uima/du...
Author: degenaro
Date: Tue Jul 12 19:37:56 2016
New Revision: 1752339
URL: http://svn.apache.org/viewvc?rev=1752339&view=rev
Log:
UIMA-5007 Jobs using Java7 fail if DUCC uses Java8
Modified:
uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/OrchestratorComponent.java
uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java
uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/config/OrchestratorConfiguration.java
uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jd/JobDriverStateExchanger.java
uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/JdRequestEvent.java
uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcessMap.java
uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/IDriverStatusReport.java
uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/JobDriverReport.java
Modified: uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/OrchestratorComponent.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/OrchestratorComponent.java?rev=1752339&r1=1752338&r2=1752339&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/OrchestratorComponent.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/OrchestratorComponent.java Tue Jul 12 19:37:56 2016
@@ -65,6 +65,7 @@ import org.apache.uima.ducc.transport.ev
import org.apache.uima.ducc.transport.event.cli.ReservationReplyProperties;
import org.apache.uima.ducc.transport.event.cli.ReservationRequestProperties;
import org.apache.uima.ducc.transport.event.cli.SpecificationProperties;
+import org.apache.uima.ducc.transport.event.common.DuccProcessMap;
import org.apache.uima.ducc.transport.event.common.DuccWorkJob;
import org.apache.uima.ducc.transport.event.common.DuccWorkMap;
import org.apache.uima.ducc.transport.event.common.DuccWorkReservation;
@@ -72,6 +73,7 @@ import org.apache.uima.ducc.transport.ev
import org.apache.uima.ducc.transport.event.common.IDuccCompletionType.ReservationCompletionType;
import org.apache.uima.ducc.transport.event.common.IDuccProcess;
import org.apache.uima.ducc.transport.event.common.IDuccProcess.ReasonForStoppingProcess;
+import org.apache.uima.ducc.transport.event.common.IDuccProcessMap;
import org.apache.uima.ducc.transport.event.common.IDuccReservation;
import org.apache.uima.ducc.transport.event.common.IDuccReservationMap;
import org.apache.uima.ducc.transport.event.common.IDuccState.JobState;
@@ -381,7 +383,8 @@ implements Orchestrator {
stateManager.reconcileState(dsr);
String sid = ""+duccId.getFriendly();
DuccWorkJob duccWorkJob = (DuccWorkJob) WorkMapHelper.cloneDuccWork(workMap, sid, this, methodName);
- duccEvent.setJob(duccWorkJob);
+ IDuccProcessMap processMap = duccWorkJob.getProcessMap();
+ duccEvent.setProcessMap(new DuccProcessMap(processMap));
}
logger.trace(methodName, null, messages.fetch("exit"));
}
Modified: uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java?rev=1752339&r1=1752338&r2=1752339&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java Tue Jul 12 19:37:56 2016
@@ -338,7 +338,7 @@ public class StateManager {
private void copyInvestmentReport(DuccWorkJob job, IDriverStatusReport jdStatusReport) {
String methodName = "copyInvestmentReport";
try {
- ConcurrentHashMap<RemoteLocation, Long> omMap = jdStatusReport.getInvestmentMillisMap();
+ Map<RemoteLocation, Long> omMap = jdStatusReport.getInvestmentMillisMap();
IDuccProcessMap processMap = job.getProcessMap();
for(Entry<DuccId, IDuccProcess> entry : processMap.entrySet()) {
IDuccProcess process = entry.getValue();
Modified: uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/config/OrchestratorConfiguration.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/config/OrchestratorConfiguration.java?rev=1752339&r1=1752338&r2=1752339&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/config/OrchestratorConfiguration.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/config/OrchestratorConfiguration.java Tue Jul 12 19:37:56 2016
@@ -166,7 +166,7 @@ public class OrchestratorConfiguration {
if(obj instanceof JdRequestEvent) {
JdRequestEvent jdRequestEvent = exchange.getIn().getBody(JdRequestEvent.class);
JdReplyEvent jdReplyEvent = new JdReplyEvent();
- jdReplyEvent.setJob(jdRequestEvent.getJob());
+ jdReplyEvent.setProcessMap(jdRequestEvent.getProcessMap());
exchange.getIn().setBody(jdReplyEvent);
}
if(obj instanceof DuccWorkRequestEvent) {
Modified: uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jd/JobDriverStateExchanger.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jd/JobDriverStateExchanger.java?rev=1752339&r1=1752338&r2=1752339&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jd/JobDriverStateExchanger.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/configuration/jd/JobDriverStateExchanger.java Tue Jul 12 19:37:56 2016
@@ -38,10 +38,9 @@ import org.apache.uima.ducc.transport.di
import org.apache.uima.ducc.transport.dispatcher.IDuccEventDispatcher;
import org.apache.uima.ducc.transport.event.JdReplyEvent;
import org.apache.uima.ducc.transport.event.JdRequestEvent;
-import org.apache.uima.ducc.transport.event.common.DuccProcessConcurrentMap;
+import org.apache.uima.ducc.transport.event.common.DuccProcessMap;
import org.apache.uima.ducc.transport.event.common.IDuccProcess;
import org.apache.uima.ducc.transport.event.common.IDuccProcessMap;
-import org.apache.uima.ducc.transport.event.common.IDuccWorkJob;
import org.apache.uima.ducc.transport.event.common.IProcessState.ProcessState;
import org.apache.uima.ducc.transport.event.common.IResourceState.ProcessDeallocationType;
import org.apache.uima.ducc.transport.event.jd.IDriverStatusReport;
@@ -69,7 +68,7 @@ public class JobDriverStateExchanger ext
private AtomicInteger getStateReqNo = new AtomicInteger(0);
- private IDuccProcessMap dpMap = new DuccProcessConcurrentMap();
+ private IDuccProcessMap dpMap = new DuccProcessMap();
public static IDuccEventDispatcher create(Object specs) throws Exception {
IDuccEventDispatcher retVal = null;
@@ -143,7 +142,7 @@ public class JobDriverStateExchanger ext
}
public void setProcessMap(IDuccProcessMap value) {
- dpMap = value;
+ dpMap = new DuccProcessMap(value);
}
public JdReplyEvent request(JdRequestEvent jdRequestEvent) {
@@ -179,85 +178,82 @@ public class JobDriverStateExchanger ext
private void handle(JdReplyEvent jdReplyEvent) {
String location = "handle";
- IDuccWorkJob dwj = jdReplyEvent.getJob();
try {
JobDriver jd = JobDriver.getInstance();
IMessageHandler mh = jd.getMessageHandler();
- if(dwj != null) {
- setProcessMap(dwj.getProcessMap());
- IWorkItemStateKeeper wisk = JobDriver.getInstance().getWorkItemStateKeeper();
- wisk.persist();
- IDuccProcessMap pMap = dwj.getProcessMap();
- for(Entry<DuccId, IDuccProcess> entry : pMap.entrySet()) {
- IDuccProcess p = entry.getValue();
- ProcessState state = p.getProcessState();
- NodeIdentity ni = p.getNodeIdentity();
- String node = ni.getName();
- String ip = ni.getIp();
- String pidName = p.getDuccId().getFriendly()+"";
- String pid = p.getPID();
- StringBuffer sb = new StringBuffer();
- sb.append("node: "+node);
+ setProcessMap(jdReplyEvent.getProcessMap());
+ IWorkItemStateKeeper wisk = JobDriver.getInstance().getWorkItemStateKeeper();
+ wisk.persist();
+ IDuccProcessMap pMap = jdReplyEvent.getProcessMap();
+ for(Entry<DuccId, IDuccProcess> entry : pMap.entrySet()) {
+ IDuccProcess p = entry.getValue();
+ ProcessState state = p.getProcessState();
+ NodeIdentity ni = p.getNodeIdentity();
+ String node = ni.getName();
+ String ip = ni.getIp();
+ String pidName = p.getDuccId().getFriendly()+"";
+ String pid = p.getPID();
+ StringBuffer sb = new StringBuffer();
+ sb.append("node: "+node);
+ sb.append(" ");
+ sb.append("ip: "+ip);
+ sb.append(" ");
+ sb.append("pid: "+pid);
+ sb.append(" ");
+ sb.append("state:"+state.name());
+ sb.append(" ");
+ String reasonStopped = p.getReasonForStoppingProcess();
+ if(reasonStopped != null) {
+ sb.append("reason[stopped]:"+reasonStopped);
sb.append(" ");
- sb.append("ip: "+ip);
- sb.append(" ");
- sb.append("pid: "+pid);
- sb.append(" ");
- sb.append("state:"+state.name());
- sb.append(" ");
- String reasonStopped = p.getReasonForStoppingProcess();
- if(reasonStopped != null) {
- sb.append("reason[stopped]:"+reasonStopped);
- sb.append(" ");
- }
- String reasonDeallocated = null;
- ProcessDeallocationType processDeallocationType = p.getProcessDeallocationType();
- if(processDeallocationType != null) {
- switch(processDeallocationType) {
- case Undefined:
- break;
- default:
- reasonDeallocated = processDeallocationType.name();
- sb.append("reason[deallocated]:"+reasonDeallocated);
- sb.append(" ");
- break;
- }
- }
- RemoteWorkerProcess rwp = RemoteWorkerProcess.factory(node, ip, pidName, pid);
- if(jobProcessBlacklist.includes(rwp)) {
- logger.trace(location, jobid, sb.toString());
- continue;
- }
- logger.debug(location, jobid, sb.toString());
- switch(state) {
- case Starting:
- case Initializing:
- case Running:
+ }
+ String reasonDeallocated = null;
+ ProcessDeallocationType processDeallocationType = p.getProcessDeallocationType();
+ if(processDeallocationType != null) {
+ switch(processDeallocationType) {
+ case Undefined:
break;
default:
- try {
- if(pid != null) {
- int iPid = Integer.parseInt(pid.trim());
- IProcessInfo processInfo = new ProcessInfo(node, ip, pidName, iPid, reasonStopped, reasonDeallocated);
- if(p.isFailedInitialization()) {
- mh.handleProcessFailedInitialization(processInfo);
- }
- else if(p.isPreempted()) {
- mh.handleProcessPreempt(processInfo);
- }
- else if(p.isVolunteered()) {
- mh.handleProcessVolunteered(processInfo);
- }
- else {
- mh.handleProcessDown(processInfo);
- }
+ reasonDeallocated = processDeallocationType.name();
+ sb.append("reason[deallocated]:"+reasonDeallocated);
+ sb.append(" ");
+ break;
+ }
+ }
+ RemoteWorkerProcess rwp = RemoteWorkerProcess.factory(node, ip, pidName, pid);
+ if(jobProcessBlacklist.includes(rwp)) {
+ logger.trace(location, jobid, sb.toString());
+ continue;
+ }
+ logger.debug(location, jobid, sb.toString());
+ switch(state) {
+ case Starting:
+ case Initializing:
+ case Running:
+ break;
+ default:
+ try {
+ if(pid != null) {
+ int iPid = Integer.parseInt(pid.trim());
+ IProcessInfo processInfo = new ProcessInfo(node, ip, pidName, iPid, reasonStopped, reasonDeallocated);
+ if(p.isFailedInitialization()) {
+ mh.handleProcessFailedInitialization(processInfo);
+ }
+ else if(p.isPreempted()) {
+ mh.handleProcessPreempt(processInfo);
+ }
+ else if(p.isVolunteered()) {
+ mh.handleProcessVolunteered(processInfo);
+ }
+ else {
+ mh.handleProcessDown(processInfo);
}
}
- catch(Exception e) {
- logger.error(location, jobid, e);
- }
- break;
}
+ catch(Exception e) {
+ logger.error(location, jobid, e);
+ }
+ break;
}
}
}
Modified: uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/JdRequestEvent.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/JdRequestEvent.java?rev=1752339&r1=1752338&r2=1752339&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/JdRequestEvent.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/JdRequestEvent.java Tue Jul 12 19:37:56 2016
@@ -18,14 +18,14 @@
*/
package org.apache.uima.ducc.transport.event;
-import org.apache.uima.ducc.transport.event.common.IDuccWorkJob;
+import org.apache.uima.ducc.transport.event.common.IDuccProcessMap;
import org.apache.uima.ducc.transport.event.jd.IDriverStatusReport;
@SuppressWarnings("serial")
public class JdRequestEvent extends AbstractDuccJobEvent {
private IDriverStatusReport driverStatusReport = null;
- private IDuccWorkJob job = null;
+ private IDuccProcessMap processMap = null;
public JdRequestEvent() {
super(EventType.JD_STATE);
@@ -39,11 +39,11 @@ public class JdRequestEvent extends Abst
driverStatusReport = value;
}
- public IDuccWorkJob getJob() {
- return job;
+ public IDuccProcessMap getProcessMap() {
+ return processMap;
}
- public void setJob(IDuccWorkJob value) {
- job = value;
+ public void setProcessMap(IDuccProcessMap value) {
+ processMap = value;
}
}
Modified: uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcessMap.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcessMap.java?rev=1752339&r1=1752338&r2=1752339&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcessMap.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccProcessMap.java Tue Jul 12 19:37:56 2016
@@ -38,6 +38,12 @@ public class DuccProcessMap extends Tree
*/
private static final long serialVersionUID = 1L;
+ public DuccProcessMap() {
+ }
+
+ public DuccProcessMap(IDuccProcessMap map) {
+ putAll(map);
+ }
public void addProcess(IDuccProcess process) {
synchronized(this) {
Modified: uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/IDriverStatusReport.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/IDriverStatusReport.java?rev=1752339&r1=1752338&r2=1752339&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/IDriverStatusReport.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/IDriverStatusReport.java Tue Jul 12 19:37:56 2016
@@ -19,7 +19,6 @@
package org.apache.uima.ducc.transport.event.jd;
import java.util.Map;
-import java.util.concurrent.ConcurrentHashMap;
import org.apache.uima.ducc.common.jd.files.workitem.IRemoteLocation;
import org.apache.uima.ducc.common.jd.files.workitem.RemoteLocation;
@@ -100,6 +99,6 @@ public interface IDriverStatusReport {
public IDuccProcessWorkItemsReport getDuccProcessWorkItemsMap();
- public ConcurrentHashMap<RemoteLocation, Long> getOperatingMillisMap();
- public ConcurrentHashMap<RemoteLocation, Long> getInvestmentMillisMap();
+ public Map<RemoteLocation, Long> getOperatingMillisMap();
+ public Map<RemoteLocation, Long> getInvestmentMillisMap();
}
Modified: uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/JobDriverReport.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/JobDriverReport.java?rev=1752339&r1=1752338&r2=1752339&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/JobDriverReport.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/jd/JobDriverReport.java Tue Jul 12 19:37:56 2016
@@ -23,7 +23,6 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Map.Entry;
-import java.util.concurrent.ConcurrentHashMap;
import org.apache.uima.ducc.common.jd.files.workitem.IRemoteLocation;
import org.apache.uima.ducc.common.jd.files.workitem.RemoteLocation;
@@ -82,8 +81,8 @@ public class JobDriverReport implements
private ArrayList<IWorkItemInfo> listActiveWorkItemInfo = null;
- private ConcurrentHashMap<RemoteLocation, Long> mapProcessOperatingMillis = null;
- private ConcurrentHashMap<RemoteLocation, Long> mapProcessInvestmentMillis = null;
+ private Map<RemoteLocation, Long> mapProcessOperatingMillis = null;
+ private Map<RemoteLocation, Long> mapProcessInvestmentMillis = null;
private Map<IRemoteLocation, ProcessDeallocationType> processKillMap = null;
@@ -527,9 +526,9 @@ public class JobDriverReport implements
}
@Override
- public ConcurrentHashMap<RemoteLocation, Long> getOperatingMillisMap() {
+ public synchronized Map<RemoteLocation, Long> getOperatingMillisMap() {
if(mapProcessOperatingMillis == null) {
- mapProcessOperatingMillis = new ConcurrentHashMap<RemoteLocation, Long>();
+ mapProcessOperatingMillis = new HashMap<RemoteLocation, Long>();
if(listActiveWorkItemInfo != null) {
for(IWorkItemInfo wii: listActiveWorkItemInfo) {
String nodeIP = wii.getNodeAddress();
@@ -547,8 +546,8 @@ public class JobDriverReport implements
}
@Override
- public ConcurrentHashMap<RemoteLocation, Long> getInvestmentMillisMap() {
- mapProcessInvestmentMillis = new ConcurrentHashMap<RemoteLocation, Long>();
+ public synchronized Map<RemoteLocation, Long> getInvestmentMillisMap() {
+ mapProcessInvestmentMillis = new HashMap<RemoteLocation, Long>();
if(listActiveWorkItemInfo != null) {
for(IWorkItemInfo wii: listActiveWorkItemInfo) {
String nodeIP = wii.getNodeAddress();