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 2018/05/24 14:21:20 UTC

svn commit: r1832174 - in /uima/uima-ducc/trunk: uima-ducc-common/src/main/java/org/apache/uima/ducc/common/boot/DuccDaemonRuntimeProperties.java uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/state/monitoring/NodeState.java

Author: degenaro
Date: Thu May 24 14:21:19 2018
New Revision: 1832174

URL: http://svn.apache.org/viewvc?rev=1832174&view=rev
Log:
UIMA-5742 Reliable DUCC - fix open file descriptor leak

Modified:
    uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/boot/DuccDaemonRuntimeProperties.java
    uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/state/monitoring/NodeState.java

Modified: uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/boot/DuccDaemonRuntimeProperties.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/boot/DuccDaemonRuntimeProperties.java?rev=1832174&r1=1832173&r2=1832174&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/boot/DuccDaemonRuntimeProperties.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-common/src/main/java/org/apache/uima/ducc/common/boot/DuccDaemonRuntimeProperties.java Thu May 24 14:21:19 2018
@@ -94,6 +94,7 @@ public class DuccDaemonRuntimeProperties
 			FileInputStream fis;
 			fis = new FileInputStream(file);
 			properties.load(fis);
+			fis.close();
 			
 		} 
 		catch (FileNotFoundException e) {
@@ -115,6 +116,7 @@ public class DuccDaemonRuntimeProperties
 			FileOutputStream fos;
 			fos = new FileOutputStream(file);
 			properties.store(fos,"");
+			fos.close();
 		} 
 		catch (IOException e) {
 			System.out.println("Error writing file: "+fileName);
@@ -159,7 +161,7 @@ public class DuccDaemonRuntimeProperties
 			FileInputStream fis;
 			fis = new FileInputStream(file);
 			properties.load(fis);
-			
+			fis.close();
 		} 
 		catch (FileNotFoundException e) {
 			System.out.println("File not found: "+fileName);
@@ -177,6 +179,7 @@ public class DuccDaemonRuntimeProperties
 			FileOutputStream fos;
 			fos = new FileOutputStream(file);
 			properties.store(fos,"");
+			fos.close();
 		} 
 		catch (IOException e) {
 			System.out.println("Error writing file: "+fileName);

Modified: uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/state/monitoring/NodeState.java
URL: http://svn.apache.org/viewvc/uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/state/monitoring/NodeState.java?rev=1832174&r1=1832173&r2=1832174&view=diff
==============================================================================
--- uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/state/monitoring/NodeState.java (original)
+++ uima/uima-ducc/trunk/uima-ducc-web/src/main/java/org/apache/uima/ducc/ws/state/monitoring/NodeState.java Thu May 24 14:21:19 2018
@@ -123,8 +123,22 @@ public class NodeState implements INodeS
 		private long sleep_seconds = 60;
 		private long sleep_millis = sleep_seconds*1000;
 		
+		private IRmPersistence persistence = null;
+		
 		public Monitor() {
-			up();
+			initialize();
+		}
+		
+		private void initialize() {
+			String location = "initialize";
+			try {
+				up();
+				persistence = configure();
+			}
+			catch(Exception e) {
+				down();
+				logger.error(location, jobid, e);
+			}
 		}
 		
 		// fetch new results from datastore every interval
@@ -176,8 +190,9 @@ public class NodeState implements INodeS
 			String location = "fetch";
 			Map<String, Map<String, Object>> retVal = map_empty;
 			try {
-				IRmPersistence persistence = configure();
-			    retVal = persistence.getAllMachines();
+				if(persistence != null) {
+					retVal = persistence.getAllMachines();
+				}
 				logger.debug(location, jobid, "map:"+retVal.size());
 			}
 			catch(Exception e) {