Author: cwiklik Date: Wed Dec 14 19:57:22 2016 New Revision: 1774332 URL: http://svn.apache.org/viewvc?rev=1774332&view=rev Log: UIMA-5215 modified to populate reasonForFailure property of the IDuccProcess with data found in stderr stream. This will provide the cause of failure in case when a process cannot start due to bad log file name for example
Modified: uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/ManagedProcess.java Modified: uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/ManagedProcess.java URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/ManagedProcess.java?rev=1774332&r1=1774331&r2=1774332&view=diff ============================================================================== --- uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/ManagedProcess.java (original) +++ uima/uima-ducc/trunk/uima-ducc-agent/src/main/java/org/apache/uima/ducc/agent/launcher/ManagedProcess.java Wed Dec 14 19:57:22 2016 @@ -428,15 +428,12 @@ public class ManagedProcess implements P // the reason for failure would be provided by the OS (wrong // user id, bad directory,etc) String errors = stdErrReader.getDataFromStream(); - if (errors.trim().length() > 0) { + if (errors != null && errors.trim().length() > 0) { getDuccProcess().setReasonForStoppingProcess( errors.trim()); log("ManagedProcess.drainProcessStreams", "Process Failed - stderr stream:"+getDuccProcess().getReasonForStoppingProcess()); - - - } // APs can stop for any reason. There is @@ -449,7 +446,7 @@ public class ManagedProcess implements P // start due to misconfiguration // the reason for failure would be provided by the OS (wrong // user id, bad directory,etc) - if (errors.trim().length() > 0) { + if (errors != null && errors.trim().length() > 0) { // JP should not be marked as CROAKED if it terminates // due to a process error, failed initialization or initialization // timeout. On such errors, a JP sends an event to its agent where @@ -457,12 +454,15 @@ public class ManagedProcess implements P if ( getDuccProcess().getProcessState().equals(ProcessState.Stopping) ) { // the reason was already set while handling JPs Stopping event getDuccProcess().setProcessState(ProcessState.Stopped); // now the JP is dead - } else { + } + /* + else { // Process terminated unexpectedly. It stopped on its own due to Ducc framework // error or due to some external event not initiated by an agent getDuccProcess().setReasonForStoppingProcess( ReasonForStoppingProcess.Croaked.toString()); } + */ } else if ( exitcode - 128 == 9 || exitcode - 128 == 15 ) { // Process terminated unexpectedly. It stopped on its own due to Ducc framework // error or due to some external event not initiated by an agent