You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by mb...@apache.org on 2012/10/04 01:59:01 UTC

svn commit: r1393839 - in /hbase/branches/0.89-fb/src: main/java/org/apache/hadoop/hbase/regionserver/HRegion.java main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java test/java/org/apache/hadoop/hbase/thrift/TestThriftServerLegacy.java

Author: mbautin
Date: Wed Oct  3 23:59:00 2012
New Revision: 1393839

URL: http://svn.apache.org/viewvc?rev=1393839&view=rev
Log:
[jira] [HBASE-6930] [89-fb] Fix TestThriftServerLegacy: notifyAll should be inside synchronized block, and a null checkAndMutate expected value should be handled correctly

Author: mbautin

Summary:
There were a couple of reasons why TestThriftServerLegacy has been failing recently in the HBase 89-fb branch:
- rHBASEEIGHTNINEFBBRANCH1393468 was calling notifyAll outside a synchronized block
- rHBASEEIGHTNINEFBBRANCH1391219 changed the meaning of a null expected value passed to checkAndMutate but that was not reflected in the Thrift handler

Test Plan: Run TestThriftServerLegacy

Reviewers: kannan, liyintang, kranganathan

Reviewed By: liyintang

Differential Revision: https://reviews.facebook.net/D5841

Modified:
    hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
    hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java
    hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServerLegacy.java

Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java?rev=1393839&r1=1393838&r2=1393839&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java Wed Oct  3 23:59:00 2012
@@ -2901,8 +2901,8 @@ public class HRegion implements HeapSize
         byte[] row = lockIds.remove(lockid);
         lockedRows.remove(row);
       }
+      lockedRows.notifyAll();
     }
-    lockedRows.notifyAll();
   }
 
   /**

Modified: hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java?rev=1393839&r1=1393838&r2=1393839&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java (original)
+++ hbase/branches/0.89-fb/src/main/java/org/apache/hadoop/hbase/thrift/ThriftServerRunner.java Wed Oct  3 23:59:00 2012
@@ -1060,6 +1060,11 @@ public class ThriftServerRunner implemen
         }
         byte[][] famAndQfCheck = KeyValue.parseColumn(getBytes(columnCheck));
         byte[] valueCheckBytes = getBytes(valueCheck);
+        if (valueCheck == null) {
+          // This means we are not expecting to see an existing value. An empty array would mean
+          // we are looking for an zero-length existing value.
+          valueCheckBytes = null;
+        }
 
         if (!delete.isEmpty() && !put.isEmpty()) {
           // can't do both, not atomic, not good idea!

Modified: hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServerLegacy.java
URL: http://svn.apache.org/viewvc/hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServerLegacy.java?rev=1393839&r1=1393838&r2=1393839&view=diff
==============================================================================
--- hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServerLegacy.java (original)
+++ hbase/branches/0.89-fb/src/test/java/org/apache/hadoop/hbase/thrift/TestThriftServerLegacy.java Wed Oct  3 23:59:00 2012
@@ -407,10 +407,11 @@ public class TestThriftServerLegacy exte
 
     // Apply timestamped Mutations to rowA
     long time1 = System.currentTimeMillis();
-    handler.checkAndMutateRowTs(tableAname, rowAname, columnAname, null,
-        getMutations(), time1, null);
+    assertTrue(handler.checkAndMutateRowTs(tableAname, rowAname, columnAname, null,
+        getMutations(), time1, null));
 
     List<TRowResult> res1 = handler.getRow(tableAname, rowAname, null);
+    assertEquals(1, res1.size());
     // Check that all went according to plan
     assertEquals(res1.get(0).columns.get(columnAname).value, valueAname);
     assertEquals(res1.get(0).columns.get(columnBname).value, valueBname);