You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by ec...@apache.org on 2012/01/18 20:25:55 UTC
svn commit: r1233008 - in
/incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server:
master/ master/state/ master/tableOps/ monitor/servlets/
test/performance/thrift/
Author: ecn
Date: Wed Jan 18 19:25:55 2012
New Revision: 1233008
URL: http://svn.apache.org/viewvc?rev=1233008&view=rev
Log:
ACCUMULO-316 - found 2-3 leaks of batch scanners while trying to reproduce ACCUMULO-315 in a test
Modified:
incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/master/Master.java
incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/master/state/MetaDataTableScanner.java
incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/master/tableOps/DeleteTable.java
incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/monitor/servlets/TablesServlet.java
incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/test/performance/thrift/NullTserver.java
Modified: incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/master/Master.java
URL: http://svn.apache.org/viewvc/incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/master/Master.java?rev=1233008&r1=1233007&r2=1233008&view=diff
==============================================================================
--- incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/master/Master.java (original)
+++ incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/master/Master.java Wed Jan 18 19:25:55 2012
@@ -845,7 +845,7 @@ public class Master implements LiveTServ
}
for (TServerInstance instance : tserverSet.getCurrentServers()) {
if (serverName.equals(instance.hostPort())) {
- nextEvent.event("%s reported split %s, %s", serverName, new KeyExtent(split.newTablets.get(0)), new KeyExtent(split.newTablets.get(0)));
+ nextEvent.event("%s reported split %s, %s", serverName, new KeyExtent(split.newTablets.get(0)), new KeyExtent(split.newTablets.get(1)));
return;
}
}
@@ -1654,6 +1654,7 @@ public class Master implements LiveTServ
BatchDeleter bd = conn.createBatchDeleter(Constants.METADATA_TABLE_NAME, Constants.NO_AUTHS, 4, 100000l, 1000l, 4);
bd.setRanges(Collections.singleton(deleteRange));
bd.delete();
+ bd.close();
if (followingTablet != null) {
log.debug("Updating prevRow of " + followingTablet + " to " + range.getPrevEndRow());
Modified: incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/master/state/MetaDataTableScanner.java
URL: http://svn.apache.org/viewvc/incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/master/state/MetaDataTableScanner.java?rev=1233008&r1=1233007&r2=1233008&view=diff
==============================================================================
--- incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/master/state/MetaDataTableScanner.java (original)
+++ incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/master/state/MetaDataTableScanner.java Wed Jan 18 19:25:55 2012
@@ -80,8 +80,10 @@ public class MetaDataTableScanner implem
}
public void close() {
- mdScanner.close();
- iter = null;
+ if (iter != null) {
+ mdScanner.close();
+ iter = null;
+ }
}
public void finalize() {
@@ -90,15 +92,27 @@ public class MetaDataTableScanner implem
@Override
public boolean hasNext() {
+ if (iter == null)
+ return false;
boolean result = iter.hasNext();
- if (!result)
- mdScanner.close();
+ if (!result) {
+ close();
+ }
return result;
}
@Override
public TabletLocationState next() {
- return fetch();
+ try {
+ return fetch();
+ } catch (RuntimeException ex) {
+ try {
+ close();
+ } catch (Exception e) {
+ log.error(e, e);
+ }
+ throw ex;
+ }
}
public static TabletLocationState createTabletLocationState(SortedMap<Key,Value> decodedRow) {
Modified: incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/master/tableOps/DeleteTable.java
URL: http://svn.apache.org/viewvc/incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/master/tableOps/DeleteTable.java?rev=1233008&r1=1233007&r2=1233008&view=diff
==============================================================================
--- incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/master/tableOps/DeleteTable.java (original)
+++ incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/master/tableOps/DeleteTable.java Wed Jan 18 19:25:55 2012
@@ -123,16 +123,20 @@ class CleanUp extends MasterRepo {
// look for other tables that references this tables files
Connector conn = instance.getConnector(SecurityConstants.getSystemCredentials());
BatchScanner bs = conn.createBatchScanner(Constants.METADATA_TABLE_NAME, Constants.NO_AUTHS, 8);
- bs.setRanges(Collections.singleton(Constants.NON_ROOT_METADATA_KEYSPACE));
- bs.fetchColumnFamily(Constants.METADATA_DATAFILE_COLUMN_FAMILY);
- IteratorSetting cfg = new IteratorSetting(40, "grep", GrepIterator.class);
- GrepIterator.setTerm(cfg, "../" + tableId + "/");
- bs.addScanIterator(cfg);
-
- for (Entry<Key,Value> entry : bs) {
- if (entry.getKey().getColumnQualifier().toString().startsWith("../" + tableId + "/")) {
- refCount++;
+ try {
+ bs.setRanges(Collections.singleton(Constants.NON_ROOT_METADATA_KEYSPACE));
+ bs.fetchColumnFamily(Constants.METADATA_DATAFILE_COLUMN_FAMILY);
+ IteratorSetting cfg = new IteratorSetting(40, "grep", GrepIterator.class);
+ GrepIterator.setTerm(cfg, "../" + tableId + "/");
+ bs.addScanIterator(cfg);
+
+ for (Entry<Key,Value> entry : bs) {
+ if (entry.getKey().getColumnQualifier().toString().startsWith("../" + tableId + "/")) {
+ refCount++;
+ }
}
+ } finally {
+ bs.close();
}
} catch (Exception e) {
Modified: incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/monitor/servlets/TablesServlet.java
URL: http://svn.apache.org/viewvc/incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/monitor/servlets/TablesServlet.java?rev=1233008&r1=1233007&r2=1233008&view=diff
==============================================================================
--- incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/monitor/servlets/TablesServlet.java (original)
+++ incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/monitor/servlets/TablesServlet.java Wed Jan 18 19:25:55 2012
@@ -153,6 +153,7 @@ public class TablesServlet extends Basic
}
}
}
+ scanner.close();
log.debug("Locs: " + locs);
List<TabletServerStatus> tservers = new ArrayList<TabletServerStatus>();
Modified: incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/test/performance/thrift/NullTserver.java
URL: http://svn.apache.org/viewvc/incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/test/performance/thrift/NullTserver.java?rev=1233008&r1=1233007&r2=1233008&view=diff
==============================================================================
--- incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/test/performance/thrift/NullTserver.java (original)
+++ incubator/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/test/performance/thrift/NullTserver.java Wed Jan 18 19:25:55 2012
@@ -215,6 +215,7 @@ public class NullTserver {
TabletLocationState next = s.next();
assignments.add(new Assignment(next.extent, instance));
}
+ s.close();
// point them to this server
MetaDataStateStore store = new MetaDataStateStore(null);
store.setLocations(assignments);