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:32:58 UTC
svn commit: r1546094 -
/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/monitoring/TaskMonitor.java
Author: tedyu
Date: Wed Nov 27 16:32:58 2013
New Revision: 1546094
URL: http://svn.apache.org/r1546094
Log:
HBASE-10046 Unmonitored HBase service could accumulate Status objects and OOM
Modified:
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/monitoring/TaskMonitor.java
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/monitoring/TaskMonitor.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/monitoring/TaskMonitor.java?rev=1546094&r1=1546093&r2=1546094&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/monitoring/TaskMonitor.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/monitoring/TaskMonitor.java Wed Nov 27 16:32:58 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;
}