svn commit: r1704855 - in /uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport: cmdline/ event/common/ event/common/history/
Author: degenaro Date: Wed Sep 23 13:59:59 2015 New Revision: 1704855 URL: http://svn.apache.org/viewvc?rev=1704855=rev Log: UIMA-4532 DUCC OR+WS expunge "shares" fix: unable to restore Jobs/Services due to serial UID mismatch Added: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/history/DeserializerObjectInputStream.java (with props) Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/cmdline/JavaCommandLine.java uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/cmdline/NonJavaCommandLine.java uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccSchedulingInfo.java uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/history/HistoryPersistenceManager.java Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/cmdline/JavaCommandLine.java URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/cmdline/JavaCommandLine.java?rev=1704855=1704854=1704855=diff == --- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/cmdline/JavaCommandLine.java (original) +++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/cmdline/JavaCommandLine.java Wed Sep 23 13:59:59 2015 @@ -21,8 +21,10 @@ package org.apache.uima.ducc.transport.c import java.util.ArrayList; import java.util.List; -@SuppressWarnings("serial") public class JavaCommandLine extends ACommandLine { + + private static final long serialVersionUID = 1L; + private String className; private String classpath; protected List options = new ArrayList(); Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/cmdline/NonJavaCommandLine.java URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/cmdline/NonJavaCommandLine.java?rev=1704855=1704854=1704855=diff == --- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/cmdline/NonJavaCommandLine.java (original) +++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/cmdline/NonJavaCommandLine.java Wed Sep 23 13:59:59 2015 @@ -18,8 +18,10 @@ */ package org.apache.uima.ducc.transport.cmdline; -@SuppressWarnings("serial") public class NonJavaCommandLine extends ACommandLine { + + private static final long serialVersionUID = 1L; + public NonJavaCommandLine(String executable) { super(executable); } Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccSchedulingInfo.java URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccSchedulingInfo.java?rev=1704855=1704854=1704855=diff == --- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccSchedulingInfo.java (original) +++ uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/DuccSchedulingInfo.java Wed Sep 23 13:59:59 2015 @@ -210,7 +210,14 @@ public class DuccSchedulingInfo implemen public long getLongProcessesMax() { - return Long.parseLong(processesMax); + long retVal = 0; + try { + retVal = Long.parseLong(processesMax); + } + catch(Exception e) { + + } + return retVal; } Added: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/history/DeserializerObjectInputStream.java URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/history/DeserializerObjectInputStream.java?rev=1704855=auto == --- uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/history/DeserializerObjectInputStream.java (added) +++
svn commit: r1704853 - /uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccSchedulerClasses.java
Author: burn Date: Wed Sep 23 13:58:28 2015 New Revision: 1704853 URL: http://svn.apache.org/viewvc?rev=1704853=rev Log: UIMA-4610 Use double-check-locking to make the loading of the classes thread-safe Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccSchedulerClasses.java Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccSchedulerClasses.java URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccSchedulerClasses.java?rev=1704853=1704852=1704853=diff == --- uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccSchedulerClasses.java (original) +++ uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccSchedulerClasses.java Wed Sep 23 13:58:28 2015 @@ -33,20 +33,25 @@ public class DuccSchedulerClasses { public static final String JobDriver = "JobDriver"; private static DuccSchedulerClasses instance = null; - + private long lastModified = 0; -NodeConfiguration nodeConfiguration = null; -DuccLogger logger = null; + private DuccLogger logger = null; + private NodeConfiguration nodeConfiguration = null; private String fileName = null; public static DuccSchedulerClasses getInstance() { - if(instance == null) { - instance = new DuccSchedulerClasses(); + // Use double check locking for safety + if (instance == null) { + synchronized(DuccSchedulerClasses.class){ +if (instance == null) { +instance = new DuccSchedulerClasses(); +} + } } return instance; } - + private DuccSchedulerClasses() { String dir_home = Utils.findDuccHome(); // Ensure DUCC_HOME is in the System properties String key = DuccPropertiesResolver.ducc_rm_class_definitions; @@ -69,32 +74,29 @@ public class DuccSchedulerClasses { public NodeConfiguration readConfiguration() throws Exception { -instance = getInstance(); - File file = new File(fileName); if ( lastModified != file.lastModified() ) { // reread if it looks like it changed synchronized(this) {// Ensure parallel threads see a valid nodeConfiguration -nodeConfiguration = new NodeConfiguration(fileName, null, null, logger); // UIMA-4275 use single common constructor -nodeConfiguration.readConfiguration(); -lastModified = file.lastModified(); // Update this AFTER the nodeConfiguration is valid +if ( lastModified != file.lastModified() ) { // an earlier thread may have already done the work +nodeConfiguration = new NodeConfiguration(fileName, null, null, logger); // UIMA-4275 use single common constructor +nodeConfiguration.readConfiguration(); +lastModified = file.lastModified(); // Update this AFTER the nodeConfiguration is valid +} } } - return nodeConfiguration; } public MapgetClasses() throws Exception { -readConfiguration(); -return nodeConfiguration.getClasses(); +return readConfiguration().getClasses(); } public boolean isPreemptable(String class_name) throws Exception { boolean retVal = false; -readConfiguration(); -DuccProperties properties = nodeConfiguration.getClass(class_name); +DuccProperties properties = readConfiguration().getClass(class_name); if (properties == null) { throw new IllegalArgumentException("Invalid scheduling_class: " + class_name); } @@ -109,8 +111,7 @@ public class DuccSchedulerClasses { throws Exception { String retVal = null; -readConfiguration(); -DuccProperties properties = nodeConfiguration.getDefaultFairShareClass(); +DuccProperties properties = readConfiguration().getDefaultFairShareClass(); if ( properties != null ) { retVal = properties.getProperty("name"); } @@ -122,8 +123,7 @@ public class DuccSchedulerClasses { */ public String getDebugClassDefaultName() throws Exception { String retVal = null; -readConfiguration(); -DuccProperties properties = nodeConfiguration.getDefaultFixedClass(); +DuccProperties properties = readConfiguration().getDefaultFixedClass(); if (properties != null) { retVal = properties.getProperty("name");
svn commit: r1704907 - in /uima/sandbox/uima-ducc/trunk/uima-ducc-database/src/main/java/org/apache/uima/ducc/database: DbLoader.java DbTester.java HistoryManagerDb.java
Author: challngr Date: Wed Sep 23 17:52:08 2015 New Revision: 1704907 URL: http://svn.apache.org/viewvc?rev=1704907=rev Log: UIMA-4577 Updates to database loader. Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-database/src/main/java/org/apache/uima/ducc/database/DbLoader.java uima/sandbox/uima-ducc/trunk/uima-ducc-database/src/main/java/org/apache/uima/ducc/database/DbTester.java uima/sandbox/uima-ducc/trunk/uima-ducc-database/src/main/java/org/apache/uima/ducc/database/HistoryManagerDb.java Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-database/src/main/java/org/apache/uima/ducc/database/DbLoader.java URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-database/src/main/java/org/apache/uima/ducc/database/DbLoader.java?rev=1704907=1704906=1704907=diff == --- uima/sandbox/uima-ducc/trunk/uima-ducc-database/src/main/java/org/apache/uima/ducc/database/DbLoader.java (original) +++ uima/sandbox/uima-ducc/trunk/uima-ducc-database/src/main/java/org/apache/uima/ducc/database/DbLoader.java Wed Sep 23 17:52:08 2015 @@ -34,7 +34,6 @@ import java.util.concurrent.atomic.Atomi import org.apache.uima.ducc.common.Pair; import org.apache.uima.ducc.common.persistence.services.IStateServices; import org.apache.uima.ducc.common.utils.DuccLogger; -import org.apache.uima.ducc.common.utils.Utils; import org.apache.uima.ducc.common.utils.id.DuccId; import org.apache.uima.ducc.database.DbConstants.DbCategory; import org.apache.uima.ducc.transport.event.common.DuccWorkMap; @@ -450,7 +449,8 @@ public class DbLoader } } -void loadCheckpoint() +@SuppressWarnings("unchecked") + void loadCheckpoint() throws Exception { String methodName = "loadCheckpoint"; @@ -537,7 +537,7 @@ public class DbLoader if ( doregistry ) { ssd = new StateServicesDb(); ssd.init(logger); -if ( false ) loadServiceRegistry(serviceRegistry, false); +loadServiceRegistry(serviceRegistry, false); try { ssd.shutdown(); } catch ( Exception e ) { @@ -547,7 +547,7 @@ public class DbLoader // -- Load service registry history ssd = new StateServicesDb(); ssd.init(logger); -if ( false ) loadServiceRegistry(serviceRegistryHistory, true); +loadServiceRegistry(serviceRegistryHistory, true); } OGlobalConfiguration.USE_WAL.setValue(true); Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-database/src/main/java/org/apache/uima/ducc/database/DbTester.java URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-database/src/main/java/org/apache/uima/ducc/database/DbTester.java?rev=1704907=1704906=1704907=diff == --- uima/sandbox/uima-ducc/trunk/uima-ducc-database/src/main/java/org/apache/uima/ducc/database/DbTester.java (original) +++ uima/sandbox/uima-ducc/trunk/uima-ducc-database/src/main/java/org/apache/uima/ducc/database/DbTester.java Wed Sep 23 17:52:08 2015 @@ -381,7 +381,6 @@ public class DbTester // -- Load job history loadJobs(); -if ( true ) return; // -- Load reservation history loadReservations(); Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-database/src/main/java/org/apache/uima/ducc/database/HistoryManagerDb.java URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-database/src/main/java/org/apache/uima/ducc/database/HistoryManagerDb.java?rev=1704907=1704906=1704907=diff == --- uima/sandbox/uima-ducc/trunk/uima-ducc-database/src/main/java/org/apache/uima/ducc/database/HistoryManagerDb.java (original) +++ uima/sandbox/uima-ducc/trunk/uima-ducc-database/src/main/java/org/apache/uima/ducc/database/HistoryManagerDb.java Wed Sep 23 17:52:08 2015 @@ -525,7 +525,7 @@ public class HistoryManagerDb private IDuccWorkReservation restoreReservationInternal(DbHandle h, OrientVertex v) throws Exception { -String methodName = "restoreReservationInternal"; +// String methodName = "restoreReservationInternal"; IDuccWorkReservation r = null; ODocument d = v.getRecord(); @@ -537,15 +537,15 @@ public class HistoryManagerDb r = g.fromJson(jo, DuccWorkReservation.class); -List l = r.getJdReservationBeanList(); -if ( l != null ) { -for (JdReservationBean b : l ) { -ConcurrentHashMap
svn commit: r1704914 - /uima/sandbox/uima-ducc/branches/uima-ducc-2.0.1/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java
Author: burn Date: Wed Sep 23 19:04:18 2015 New Revision: 1704914 URL: http://svn.apache.org/viewvc?rev=1704914=rev Log: UIMA-4576 merge revision 1698346 into this banch Modified: uima/sandbox/uima-ducc/branches/uima-ducc-2.0.1/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java (contents, props changed) Modified: uima/sandbox/uima-ducc/branches/uima-ducc-2.0.1/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/branches/uima-ducc-2.0.1/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java?rev=1704914=1704913=1704914=diff == --- uima/sandbox/uima-ducc/branches/uima-ducc-2.0.1/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java (original) +++ uima/sandbox/uima-ducc/branches/uima-ducc-2.0.1/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java Wed Sep 23 19:04:18 2015 @@ -521,8 +521,6 @@ public class StateManager { String sid = ""+duccId.getFriendly(); DuccWorkJob duccWorkJob = (DuccWorkJob) WorkMapHelper.findDuccWork(workMap, sid, this, methodName); if(duccWorkJob != null) { - addJdUrlToJpCommandLine(duccWorkJob, jdStatusReport); - addDeployableToJpCommandLine(duccWorkJob, jdStatusReport); // String jdJmxUrl = jdStatusReport.getJdJmxUrl(); setJdJmxUrl(duccWorkJob, jdJmxUrl); @@ -561,6 +559,12 @@ public class StateManager { case Initializing: switch(duccWorkJob.getJobState()) { case WaitingForDriver: + addJdUrlToJpCommandLine(duccWorkJob, jdStatusReport); + addDeployableToJpCommandLine(duccWorkJob, jdStatusReport); + if(!duccWorkJob.isJdURLSpecified()) { + logger.debug(methodName, duccId, "No JdURL provided yet - still waitingForDriver"); + break; + } JobState nextState = JobState.WaitingForServices; if(duccWorkJob.getServiceDependencies() == null) { String message = messages.fetch("bypass")+" "+nextState; Propchange: uima/sandbox/uima-ducc/branches/uima-ducc-2.0.1/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java -- --- svn:mergeinfo (added) +++ svn:mergeinfo Wed Sep 23 19:04:18 2015 @@ -0,0 +1 @@ +/uima/sandbox/uima-ducc/trunk/uima-ducc-orchestrator/src/main/java/org/apache/uima/ducc/orchestrator/StateManager.java:1698346
svn commit: r1704906 - in /uima/sandbox/uima-ducc/trunk: uima-ducc-common/src/main/java/org/apache/uima/ducc/common/ uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/ uima-ducc-web/src/main/java/or
Author: challngr Date: Wed Sep 23 17:50:44 2015 New Revision: 1704906 URL: http://svn.apache.org/viewvc?rev=1704906=rev Log: UIMA-4569 Supply per-node quantum from NodeConfiguration.java Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/NodeConfiguration.java uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccBoot.java uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/nodeviz/NodeViz.java uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/server/nodeviz/VisualizedHost.java Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/NodeConfiguration.java URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/NodeConfiguration.java?rev=1704906=1704905=1704906=diff == --- uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/NodeConfiguration.java (original) +++ uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/NodeConfiguration.java Wed Sep 23 17:50:44 2015 @@ -65,14 +65,16 @@ public class NodeConfiguration Mapusermap = new HashMap (); // all users, by name UIMA-4275 ArrayList independentClasses = new ArrayList(); // all classes that don't derive from something -Map allNodes = new HashMap (); // map node -> nodepool name, map for dup checking +Map allNodes = new HashMap (); // map node -> nodefile name, map for dup checking Map poolsByNodefile = new HashMap (); // nodepool node file -> nodepool props +Map poolsByNodeName = new HashMap (); // Nodepools, by node Map allImports = new HashMap (); // map nodefile -> importer, map for dup checking Map referrers = new HashMap (); // map nodefile -> referring nodepool, for dup checking DuccLogger logger; String defaultDomain = null; +intdefaultQuantum = 15; String firstNodepool = null; boolean fairShareExists = false; @@ -651,7 +653,7 @@ public class NodeConfiguration for (DuccProperties props : independentNodepools ) { String q = props.getProperty("share-quantum"); if ( q == null ) { -props.setProperty("share-quantum", ""+SystemPropertyResolver.getIntProperty("ducc.rm.share.quantum", 15)); +props.setProperty("share-quantum", "" + defaultQuantum); } else { try { Integer.parseInt(q); // insure it's a number @@ -797,6 +799,7 @@ public class NodeConfiguration } allNodes.put(node, nodefile); // for dup checking - we only get to read a node once nodes.put(node, nodefile);// UIMA-4142 map host -> domain +poolsByNodeName.put(node, p); // So we can find pool-related things for the node // include fully and non-fully qualified names to allow sloppiness of config ndx = node.indexOf("."); @@ -998,7 +1001,18 @@ public class NodeConfiguration return reserveDefault; } -public int getShareQuantum(String classname) +public int getQuantumForNode(String node) +{ +DuccProperties np = poolsByNodeName.get(node); +if ( np == null ) { +// it has to be the default np, so use the default quantum +return defaultQuantum; +} +// otherwise it's required that the quantum for the nodepool is set to something +return Integer.parseInt(np.getProperty("share-quantum")); +} + +public int getQuantumForClass(String classname) throws IllegalConfigurationException { // to find the quantum for a class - @@ -1051,6 +1065,7 @@ public class NodeConfiguration throw new IllegalConfigurationException("DUCC_HOME must be defined as a system property."); } defaultDomain = getDomainName(); +defaultQuantum = SystemPropertyResolver.getIntProperty("ducc.rm.share.quantum", 15); try { String tconfig_file_name = resolve(config_file_name); Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/DuccBoot.java URL:
svn commit: r1704915 - /uima/sandbox/uima-ducc/branches/uima-ducc-2.0.1/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccMonitor.java
Author: burn Date: Wed Sep 23 19:06:23 2015 New Revision: 1704915 URL: http://svn.apache.org/viewvc?rev=1704915=rev Log: UIMA-4564 merge revision 1697512 into the 2.0.1 branch Modified: uima/sandbox/uima-ducc/branches/uima-ducc-2.0.1/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccMonitor.java (contents, props changed) Modified: uima/sandbox/uima-ducc/branches/uima-ducc-2.0.1/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccMonitor.java URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/branches/uima-ducc-2.0.1/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccMonitor.java?rev=1704915=1704914=1704915=diff == --- uima/sandbox/uima-ducc/branches/uima-ducc-2.0.1/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccMonitor.java (original) +++ uima/sandbox/uima-ducc/branches/uima-ducc-2.0.1/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccMonitor.java Wed Sep 23 19:06:23 2015 @@ -391,7 +391,7 @@ public abstract class DuccMonitor { flag_cancel_on_interrupt.set(false); message.append(details(monitorInfo)); } - else if (state.equals(StateAssigned)) { // A reservation has completed + else if (context == DuccContext.Reservation && state.equals(StateAssigned)) { // A reservation has completed flag_cancel_on_interrupt.set(false); message.append(details(monitorInfo)); } @@ -427,7 +427,7 @@ public abstract class DuccMonitor { } } } - if (state.equals(StateAssigned)) { + if (context == DuccContext.Reservation && state.equals(StateAssigned)) { if(monitorInfo.nodes != null) { if(monitorInfo.nodes.size() > 0) { StringBuffer sb = new StringBuffer(); Propchange: uima/sandbox/uima-ducc/branches/uima-ducc-2.0.1/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccMonitor.java -- --- svn:mergeinfo (added) +++ svn:mergeinfo Wed Sep 23 19:06:23 2015 @@ -0,0 +1 @@ +/uima/sandbox/uima-ducc/trunk/uima-ducc-cli/src/main/java/org/apache/uima/ducc/cli/DuccMonitor.java:1693975-1697512
svn commit: r1704917 - /uima/sandbox/uima-ducc/branches/uima-ducc-2.0.1/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccSchedulerClasses.java
Author: burn Date: Wed Sep 23 19:07:40 2015 New Revision: 1704917 URL: http://svn.apache.org/viewvc?rev=1704917=rev Log: UIMA-4610 merge revision 1704853 into the 2.0.1 branch Modified: uima/sandbox/uima-ducc/branches/uima-ducc-2.0.1/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccSchedulerClasses.java (contents, props changed) Modified: uima/sandbox/uima-ducc/branches/uima-ducc-2.0.1/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccSchedulerClasses.java URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/branches/uima-ducc-2.0.1/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccSchedulerClasses.java?rev=1704917=1704916=1704917=diff == --- uima/sandbox/uima-ducc/branches/uima-ducc-2.0.1/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccSchedulerClasses.java (original) +++ uima/sandbox/uima-ducc/branches/uima-ducc-2.0.1/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/utils/DuccSchedulerClasses.java Wed Sep 23 19:07:40 2015 @@ -33,20 +33,25 @@ public class DuccSchedulerClasses { public static final String JobDriver = "JobDriver"; private static DuccSchedulerClasses instance = null; - + private long lastModified = 0; -NodeConfiguration nodeConfiguration = null; -DuccLogger logger = null; + private DuccLogger logger = null; + private NodeConfiguration nodeConfiguration = null; private String fileName = null; public static DuccSchedulerClasses getInstance() { - if(instance == null) { - instance = new DuccSchedulerClasses(); + // Use double check locking for safety + if (instance == null) { + synchronized(DuccSchedulerClasses.class){ +if (instance == null) { +instance = new DuccSchedulerClasses(); +} + } } return instance; } - + private DuccSchedulerClasses() { String dir_home = Utils.findDuccHome(); // Ensure DUCC_HOME is in the System properties String key = DuccPropertiesResolver.ducc_rm_class_definitions; @@ -69,32 +74,29 @@ public class DuccSchedulerClasses { public NodeConfiguration readConfiguration() throws Exception { -instance = getInstance(); - File file = new File(fileName); if ( lastModified != file.lastModified() ) { // reread if it looks like it changed synchronized(this) {// Ensure parallel threads see a valid nodeConfiguration -nodeConfiguration = new NodeConfiguration(fileName, null, null, logger); // UIMA-4275 use single common constructor -nodeConfiguration.readConfiguration(); -lastModified = file.lastModified(); // Update this AFTER the nodeConfiguration is valid +if ( lastModified != file.lastModified() ) { // an earlier thread may have already done the work +nodeConfiguration = new NodeConfiguration(fileName, null, null, logger); // UIMA-4275 use single common constructor +nodeConfiguration.readConfiguration(); +lastModified = file.lastModified(); // Update this AFTER the nodeConfiguration is valid +} } } - return nodeConfiguration; } public MapgetClasses() throws Exception { -readConfiguration(); -return nodeConfiguration.getClasses(); +return readConfiguration().getClasses(); } public boolean isPreemptable(String class_name) throws Exception { boolean retVal = false; -readConfiguration(); -DuccProperties properties = nodeConfiguration.getClass(class_name); +DuccProperties properties = readConfiguration().getClass(class_name); if (properties == null) { throw new IllegalArgumentException("Invalid scheduling_class: " + class_name); } @@ -109,8 +111,7 @@ public class DuccSchedulerClasses { throws Exception { String retVal = null; -readConfiguration(); -DuccProperties properties = nodeConfiguration.getDefaultFairShareClass(); +DuccProperties properties = readConfiguration().getDefaultFairShareClass(); if ( properties != null ) { retVal = properties.getProperty("name"); } @@ -122,8 +123,7 @@ public class DuccSchedulerClasses { */ public String getDebugClassDefaultName() throws Exception { String retVal = null; -readConfiguration(); -DuccProperties properties = nodeConfiguration.getDefaultFixedClass(); +DuccProperties properties = readConfiguration().getDefaultFixedClass();
svn commit: r1704926 - in /uima/sandbox/uima-ducc/trunk: uima-ducc-common/src/main/java/org/apache/uima/ducc/common/ uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/histo
Author: degenaro Date: Wed Sep 23 19:51:47 2015 New Revision: 1704926 URL: http://svn.apache.org/viewvc?rev=1704926=rev Log: UIMA-4532 DUCC OR+WS expunge "shares" fix: employ environment variable DUCC_TOLERATE_SERIAL_VERSION_UID_MISMATCH that defaults to False unless a Boolean-izable corresponding string value is specified Added: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/DuccEnvironmentHelper.java (with props) Modified: uima/sandbox/uima-ducc/trunk/uima-ducc-transport/src/main/java/org/apache/uima/ducc/transport/event/common/history/HistoryPersistenceManager.java Added: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/DuccEnvironmentHelper.java URL: http://svn.apache.org/viewvc/uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/DuccEnvironmentHelper.java?rev=1704926=auto == --- uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/DuccEnvironmentHelper.java (added) +++ uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/DuccEnvironmentHelper.java Wed Sep 23 19:51:47 2015 @@ -0,0 +1,69 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. +*/ +package org.apache.uima.ducc.common; + +import java.util.Map; + +import org.apache.uima.ducc.common.main.DuccService; +import org.apache.uima.ducc.common.utils.DuccLogger; +import org.apache.uima.ducc.common.utils.id.DuccId; + +public class DuccEnvironmentHelper { + + private static DuccLogger logger = DuccService.getDuccLogger(DuccEnvironmentHelper.class.getName()); + private static DuccId jobId = null; + + // Boolean + + public static String DUCC_TOLERATE_SERIAL_VERSION_UID_MISMATCH = "DUCC_TOLERATE_SERIAL_VERSION_UID_MISMATCH"; + + private static Boolean tolerate_serial_version_uid_mismatch = null; + + public static boolean isTolerateSerialVersionUidMismatch() { + String location = "isTolerateSerialVersionUidMismatch"; + boolean retVal = false; + if(tolerate_serial_version_uid_mismatch == null) { + try { + Mapenv = System.getenv(); + if(env != null) { + String key = DUCC_TOLERATE_SERIAL_VERSION_UID_MISMATCH; + if(env.containsKey(key)) { + String value = env.get(key); + logger.info(location, jobId, key+"="+value); + if(value != null) { + tolerate_serial_version_uid_mismatch = Boolean.valueOf(value); + retVal = tolerate_serial_version_uid_mismatch.booleanValue(); + } + } + else { + logger.debug(location, jobId, key+" "+"not found in environment"); + } + } + } + catch(Exception e) { + logger.error(location, jobId, e); + } + } + else { + retVal = tolerate_serial_version_uid_mismatch.booleanValue(); + } + return retVal; + } + +} Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/DuccEnvironmentHelper.java -- svn:eol-style = native Propchange: uima/sandbox/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/DuccEnvironmentHelper.java --