abdullah alamoudi has uploaded a new change for review.

  https://asterix-gerrit.ics.uci.edu/2483

Change subject: [NO ISSUE][OTH] Log open file count on unexpected HttpServer 
close
......................................................................

[NO ISSUE][OTH] Log open file count on unexpected HttpServer close

- user model changes: no
- storage format changes: no
- interface changes: no

Details:
- Recently, there has been some cases where the Http server
  repeatedly drops its listener. One of the possible causes
  for this is a leak in open file descriptor. To determine if
  this is the case, we log the open files count when that happens.

Change-Id: Ie43f3392268b3994839d1f98f4de9fe669c7be62
---
M 
hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServer.java
1 file changed, 11 insertions(+), 0 deletions(-)


  git pull ssh://asterix-gerrit.ics.uci.edu:29418/asterixdb 
refs/changes/83/2483/1

diff --git 
a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServer.java
 
b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServer.java
index d971a7c..cab7dd8 100644
--- 
a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServer.java
+++ 
b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/HttpServer.java
@@ -18,6 +18,9 @@
  */
 package org.apache.hyracks.http.server;
 
+import java.lang.management.ManagementFactory;
+import java.lang.management.OperatingSystemMXBean;
+import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
@@ -251,6 +254,14 @@
                     return;
                 }
                 LOGGER.log(Level.WARN, "{} has stopped unexpectedly. Starting 
server recovery", this);
+                try {
+                    OperatingSystemMXBean os = 
ManagementFactory.getOperatingSystemMXBean();
+                    Method method = 
os.getClass().getMethod("getOpenFileDescriptorCount");
+                    Integer value = (Integer) method.invoke(os);
+                    LOGGER.log(Level.WARN, "Number of open files by this 
process is {} ", value);
+                } catch (Throwable th) {
+                    LOGGER.log(Level.WARN, "Failed getting the count of open 
files", th);
+                }
                 triggerRecovery();
             }
         });

-- 
To view, visit https://asterix-gerrit.ics.uci.edu/2483
To unsubscribe, visit https://asterix-gerrit.ics.uci.edu/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie43f3392268b3994839d1f98f4de9fe669c7be62
Gerrit-PatchSet: 1
Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Owner: abdullah alamoudi <[email protected]>

Reply via email to