Author: ecn
Date: Tue Jul 10 16:34:42 2012
New Revision: 1359764
URL: http://svn.apache.org/viewvc?rev=1359764&view=rev
Log:
ACCUMULO-681 merge check for root-tablet future location to 1.4 branch
Modified:
accumulo/branches/1.4/ (props changed)
accumulo/branches/1.4/src/ (props changed)
accumulo/branches/1.4/src/core/ (props changed)
accumulo/branches/1.4/src/server/ (props changed)
accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java
Propchange: accumulo/branches/1.4/
------------------------------------------------------------------------------
Merged /accumulo/trunk/src:r1359721
Merged /accumulo/trunk:r1359721
Propchange: accumulo/branches/1.4/src/
------------------------------------------------------------------------------
Merged /accumulo/trunk/src:r1359721
Merged /accumulo/trunk:r1359721
Propchange: accumulo/branches/1.4/src/core/
------------------------------------------------------------------------------
Merged /accumulo/trunk/src/core:r1359721
Merged /accumulo/trunk/core:r1359721
Propchange: accumulo/branches/1.4/src/server/
------------------------------------------------------------------------------
Merged /accumulo/trunk/src/server:r1359721
Merged /accumulo/trunk/server:r1359721
Modified:
accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java
URL:
http://svn.apache.org/viewvc/accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java?rev=1359764&r1=1359763&r2=1359764&view=diff
==============================================================================
---
accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java
(original)
+++
accumulo/branches/1.4/src/server/src/main/java/org/apache/accumulo/server/tabletserver/TabletServer.java
Tue Jul 10 16:34:42 2012
@@ -142,6 +142,7 @@ import org.apache.accumulo.server.master
import org.apache.accumulo.server.master.state.TServerInstance;
import org.apache.accumulo.server.master.state.TabletLocationState;
import org.apache.accumulo.server.master.state.TabletStateStore;
+import org.apache.accumulo.server.master.state.ZooTabletStateStore;
import org.apache.accumulo.server.metrics.AbstractMetricsImpl;
import org.apache.accumulo.server.problems.ProblemReport;
import org.apache.accumulo.server.problems.ProblemReports;
@@ -204,6 +205,7 @@ import org.apache.thrift.TServiceClient;
import org.apache.thrift.server.TServer;
import org.apache.zookeeper.KeeperException;
import org.apache.zookeeper.KeeperException.NoNodeException;
+import org.mortbay.log.Log;
enum ScanRunState {
QUEUED, RUNNING, FINISHED
@@ -2806,11 +2808,21 @@ public class TabletServer extends Abstra
private long totalMinorCompactions;
public static SortedMap<KeyExtent,Text> verifyTabletInformation(KeyExtent
extent, TServerInstance instance, SortedMap<Key,Value> tabletsKeyValues,
- String clientAddress, ZooLock lock) throws AccumuloSecurityException {
+ String clientAddress, ZooLock lock) throws AccumuloSecurityException,
DistributedStoreException {
for (int tries = 0; tries < 3; tries++) {
try {
log.debug("verifying extent " + extent);
if (extent.equals(Constants.ROOT_TABLET_EXTENT)) {
+ ZooTabletStateStore store = new ZooTabletStateStore();
+ if (!store.iterator().hasNext()) {
+ log.warn("Illegal state: location is not set in zookeeper");
+ return null;
+ }
+ TabletLocationState next = store.iterator().next();
+ if (!instance.equals(next.future)) {
+ log.warn("Future location is not to this server for the root
tablet");
+ return null;
+ }
TreeMap<KeyExtent,Text> set = new TreeMap<KeyExtent,Text>();
set.put(extent, new Text(Constants.ZROOT_TABLET));
return set;