Index: hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java =================================================================== --- hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java (revision 1364213) +++ hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/StoreScanner.java (working copy) @@ -522,7 +522,7 @@ if (this.heap == null && this.lastTop != null) { resetScannerStack(this.lastTop); if (this.heap.peek() == null - || store.comparator.compare(this.lastTop, this.heap.peek()) != 0) { + || store.comparator.compareRows(this.lastTop, this.heap.peek()) != 0) { LOG.debug("Storescanner.peek() is changed where before = " + this.lastTop.toString() + ",and after = " + this.heap.peek()); this.lastTop = null; Index: hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestAtomicOperation.java =================================================================== --- hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestAtomicOperation.java (revision 1364213) +++ hbase-server/src/test/java/org/apache/hadoop/hbase/regionserver/TestAtomicOperation.java (working copy) @@ -255,7 +255,7 @@ LOG.info("Starting test testRowMutationMultiThreads"); initHRegion(tableName, getName(), fam1); - // create 100 threads, each will alternate between adding and + // create 10 threads, each will alternate between adding and // removing a column int numThreads = 10; int opsPerThread = 500; @@ -339,10 +339,10 @@ LOG.info("Starting test testMultiRowMutationMultiThreads"); initHRegion(tableName, getName(), fam1); - // create 100 threads, each will alternate between adding and + // create 10 threads, each will alternate between adding and // removing a column int numThreads = 10; - int opsPerThread = 1000; + int opsPerThread = 500; AtomicOperation[] all = new AtomicOperation[numThreads]; AtomicLong timeStamps = new AtomicLong(0);