You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by te...@apache.org on 2013/11/27 17:33:46 UTC

svn commit: r1546095 - /hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/monitoring/TaskMonitor.java

Author: tedyu
Date: Wed Nov 27 16:33:45 2013
New Revision: 1546095

URL: http://svn.apache.org/r1546095
Log:
HBASE-10046 Unmonitored HBase service could accumulate Status objects and OOM


Modified:
    hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/monitoring/TaskMonitor.java

Modified: hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/monitoring/TaskMonitor.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/monitoring/TaskMonitor.java?rev=1546095&r1=1546094&r2=1546095&view=diff
==============================================================================
--- hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/monitoring/TaskMonitor.java (original)
+++ hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/monitoring/TaskMonitor.java Wed Nov 27 16:33:45 2013
@@ -73,8 +73,9 @@ public class TaskMonitor {
         new Class<?>[] { MonitoredTask.class },
         new PassthroughInvocationHandler<MonitoredTask>(stat));
     TaskAndWeakRefPair pair = new TaskAndWeakRefPair(stat, proxy);
-    synchronized (this) {
-      tasks.add(pair);
+    tasks.add(pair);
+    if (tasks.size() > MAX_TASKS) {
+      purgeExpiredTasks();
     }
     return proxy;
   }
@@ -87,8 +88,9 @@ public class TaskMonitor {
         new Class<?>[] { MonitoredRPCHandler.class },
         new PassthroughInvocationHandler<MonitoredRPCHandler>(stat));
     TaskAndWeakRefPair pair = new TaskAndWeakRefPair(stat, proxy);
-    synchronized (this) {
-      tasks.add(pair);
+    tasks.add(pair);
+    if (tasks.size() > MAX_TASKS) {
+      purgeExpiredTasks();
     }
     return proxy;
   }