You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by st...@apache.org on 2012/09/22 01:23:26 UTC
svn commit: r1388725 -
/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.java
Author: stack
Date: Fri Sep 21 23:23:25 2012
New Revision: 1388725
URL: http://svn.apache.org/viewvc?rev=1388725&view=rev
Log:
HBASE-6858 Fix the incorrect BADVERSION checking in the recoverable zookeeper; REVERT.... BROKE
Modified:
hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.java
Modified: hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.java
URL: http://svn.apache.org/viewvc/hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.java?rev=1388725&r1=1388724&r2=1388725&view=diff
==============================================================================
--- hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.java (original)
+++ hbase/trunk/hbase-server/src/main/java/org/apache/hadoop/hbase/zookeeper/RecoverableZooKeeper.java Fri Sep 21 23:23:25 2012
@@ -357,9 +357,12 @@ public class RecoverableZooKeeper {
try{
Stat stat = new Stat();
byte[] revData = zk.getData(path, false, stat);
- int idLength = Bytes.toInt(revData, MAGIC_OFFSET);
- if (Bytes.compareTo(revData, MAGIC_OFFSET + ID_OFFSET, idLength,
- id, 0, id.length) == 0) {
+ int idLength = Bytes.toInt(revData, ID_LENGTH_SIZE);
+ int dataLength = revData.length-ID_LENGTH_SIZE-idLength;
+ int dataOffset = ID_LENGTH_SIZE+idLength;
+
+ if(Bytes.compareTo(revData, ID_LENGTH_SIZE, id.length,
+ revData, dataOffset, dataLength) == 0) {
// the bad version is caused by previous successful setData
return stat;
}