Return-Path: X-Original-To: apmail-cassandra-commits-archive@www.apache.org Delivered-To: apmail-cassandra-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id DB42C540D for ; Thu, 12 May 2011 15:22:59 +0000 (UTC) Received: (qmail 77862 invoked by uid 500); 12 May 2011 15:22:59 -0000 Delivered-To: apmail-cassandra-commits-archive@cassandra.apache.org Received: (qmail 77840 invoked by uid 500); 12 May 2011 15:22:59 -0000 Mailing-List: contact commits-help@cassandra.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cassandra.apache.org Delivered-To: mailing list commits@cassandra.apache.org Received: (qmail 77828 invoked by uid 99); 12 May 2011 15:22:59 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 12 May 2011 15:22:59 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 12 May 2011 15:22:58 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 0204C238890A; Thu, 12 May 2011 15:22:38 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1102349 - in /cassandra/branches/cassandra-0.8.1: ./ contrib/ interface/thrift/gen-java/org/apache/cassandra/thrift/ src/java/org/apache/cassandra/db/ src/java/org/apache/cassandra/db/commitlog/ test/unit/org/apache/cassandra/db/ Date: Thu, 12 May 2011 15:22:37 -0000 To: commits@cassandra.apache.org From: slebresne@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110512152238.0204C238890A@eris.apache.org> Author: slebresne Date: Thu May 12 15:22:37 2011 New Revision: 1102349 URL: http://svn.apache.org/viewvc?rev=1102349&view=rev Log: merge from 0.8 Modified: cassandra/branches/cassandra-0.8.1/ (props changed) cassandra/branches/cassandra-0.8.1/CHANGES.txt cassandra/branches/cassandra-0.8.1/contrib/ (props changed) cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java (props changed) cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java (props changed) cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java (props changed) cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java (props changed) cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java (props changed) cassandra/branches/cassandra-0.8.1/src/java/org/apache/cassandra/db/RowMutation.java cassandra/branches/cassandra-0.8.1/src/java/org/apache/cassandra/db/commitlog/CommitLog.java cassandra/branches/cassandra-0.8.1/test/unit/org/apache/cassandra/db/RecoveryManagerTest.java Propchange: cassandra/branches/cassandra-0.8.1/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu May 12 15:22:37 2011 @@ -1,7 +1,7 @@ /cassandra/branches/cassandra-0.6:922689-1052356,1052358-1053452,1053454,1053456-1081914,1083000 /cassandra/branches/cassandra-0.7:1026516-1102046,1102337 /cassandra/branches/cassandra-0.7.0:1053690-1055654 -/cassandra/branches/cassandra-0.8:1090935-1101945,1102339 +/cassandra/branches/cassandra-0.8:1090935-1101945,1102339,1102345 /cassandra/tags/cassandra-0.7.0-rc3:1051699-1053689 /incubator/cassandra/branches/cassandra-0.3:774578-796573 /incubator/cassandra/branches/cassandra-0.4:810145-834239,834349-834350 Modified: cassandra/branches/cassandra-0.8.1/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8.1/CHANGES.txt?rev=1102349&r1=1102348&r2=1102349&view=diff ============================================================================== --- cassandra/branches/cassandra-0.8.1/CHANGES.txt (original) +++ cassandra/branches/cassandra-0.8.1/CHANGES.txt Thu May 12 15:22:37 2011 @@ -18,6 +18,7 @@ * avoid using cached position of a key when GT is requested (CASSANDRA-2633) * fix counting bloom filter true positives (CASSANDRA-2637) * initialize local ep state prior to gossip startup if needed (CASSANDRA-2638) + * fix counter increment lost after restart (CASSANDRA-2642) 0.8.0-rc1 Propchange: cassandra/branches/cassandra-0.8.1/contrib/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu May 12 15:22:37 2011 @@ -1,7 +1,7 @@ /cassandra/branches/cassandra-0.6/contrib:922689-1052356,1052358-1053452,1053454,1053456-1068009 /cassandra/branches/cassandra-0.7/contrib:1026516-1102046,1102337 /cassandra/branches/cassandra-0.7.0/contrib:1053690-1055654 -/cassandra/branches/cassandra-0.8/contrib:1090935-1101945,1102339 +/cassandra/branches/cassandra-0.8/contrib:1090935-1101945,1102339,1102345 /cassandra/tags/cassandra-0.7.0-rc3/contrib:1051699-1053689 /incubator/cassandra/branches/cassandra-0.3/contrib:774578-796573 /incubator/cassandra/branches/cassandra-0.4/contrib:810145-810987,810994-834239,834349-834350 Propchange: cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu May 12 15:22:37 2011 @@ -1,7 +1,7 @@ /cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:922689-1052356,1052358-1053452,1053454,1053456-1081914,1083000 /cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1026516-1102046,1102337 /cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1053690-1055654 -/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090935-1101945,1102339 +/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1090935-1101945,1102339,1102345 /cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Cassandra.java:1051699-1053689 /incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/Cassandra.java:774578-796573 /incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/Cassandra.java:810145-834239,834349-834350 Propchange: cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu May 12 15:22:37 2011 @@ -1,7 +1,7 @@ /cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:922689-1052356,1052358-1053452,1053454,1053456-1081914,1083000 /cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1026516-1102046,1102337 /cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1053690-1055654 -/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1090935-1101945,1102339 +/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1090935-1101945,1102339,1102345 /cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/Column.java:1051699-1053689 /incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/column_t.java:774578-792198 /incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/Column.java:810145-834239,834349-834350 Propchange: cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu May 12 15:22:37 2011 @@ -1,7 +1,7 @@ /cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:922689-1052356,1052358-1053452,1053454,1053456-1081914,1083000 /cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1026516-1102046,1102337 /cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1053690-1055654 -/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1090935-1101945,1102339 +/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1090935-1101945,1102339,1102345 /cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/InvalidRequestException.java:1051699-1053689 /incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:774578-796573 /incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/InvalidRequestException.java:810145-834239,834349-834350 Propchange: cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu May 12 15:22:37 2011 @@ -1,7 +1,7 @@ /cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:922689-1052356,1052358-1053452,1053454,1053456-1081914,1083000 /cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1026516-1102046,1102337 /cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1053690-1055654 -/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1090935-1101945,1102339 +/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1090935-1101945,1102339,1102345 /cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/NotFoundException.java:1051699-1053689 /incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:774578-796573 /incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/NotFoundException.java:810145-834239,834349-834350 Propchange: cassandra/branches/cassandra-0.8.1/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Thu May 12 15:22:37 2011 @@ -1,7 +1,7 @@ /cassandra/branches/cassandra-0.6/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:922689-1052356,1052358-1053452,1053454,1053456-1081914,1083000 /cassandra/branches/cassandra-0.7/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1026516-1102046,1102337 /cassandra/branches/cassandra-0.7.0/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1053690-1055654 -/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1090935-1101945,1102339 +/cassandra/branches/cassandra-0.8/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1090935-1101945,1102339,1102345 /cassandra/tags/cassandra-0.7.0-rc3/interface/thrift/gen-java/org/apache/cassandra/thrift/SuperColumn.java:1051699-1053689 /incubator/cassandra/branches/cassandra-0.3/interface/gen-java/org/apache/cassandra/service/superColumn_t.java:774578-792198 /incubator/cassandra/branches/cassandra-0.4/interface/gen-java/org/apache/cassandra/service/SuperColumn.java:810145-834239,834349-834350 Modified: cassandra/branches/cassandra-0.8.1/src/java/org/apache/cassandra/db/RowMutation.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8.1/src/java/org/apache/cassandra/db/RowMutation.java?rev=1102349&r1=1102348&r2=1102349&view=diff ============================================================================== --- cassandra/branches/cassandra-0.8.1/src/java/org/apache/cassandra/db/RowMutation.java (original) +++ cassandra/branches/cassandra-0.8.1/src/java/org/apache/cassandra/db/RowMutation.java Thu May 12 15:22:37 2011 @@ -355,7 +355,7 @@ public class RowMutation implements IMut } } - public RowMutation deserialize(DataInputStream dis, int version) throws IOException + public RowMutation deserialize(DataInputStream dis, int version, boolean fromRemote) throws IOException { String table = dis.readUTF(); ByteBuffer key = ByteBufferUtil.readWithShortLength(dis); @@ -364,11 +364,15 @@ public class RowMutation implements IMut for (int i = 0; i < size; ++i) { Integer cfid = Integer.valueOf(dis.readInt()); - // This is coming from a remote host - ColumnFamily cf = ColumnFamily.serializer().deserialize(dis, true, true); + ColumnFamily cf = ColumnFamily.serializer().deserialize(dis, true, fromRemote); modifications.put(cfid, cf); } return new RowMutation(table, key, modifications); } + + public RowMutation deserialize(DataInputStream dis, int version) throws IOException + { + return deserialize(dis, version, true); + } } } Modified: cassandra/branches/cassandra-0.8.1/src/java/org/apache/cassandra/db/commitlog/CommitLog.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8.1/src/java/org/apache/cassandra/db/commitlog/CommitLog.java?rev=1102349&r1=1102348&r2=1102349&view=diff ============================================================================== --- cassandra/branches/cassandra-0.8.1/src/java/org/apache/cassandra/db/commitlog/CommitLog.java (original) +++ cassandra/branches/cassandra-0.8.1/src/java/org/apache/cassandra/db/commitlog/CommitLog.java Thu May 12 15:22:37 2011 @@ -268,7 +268,7 @@ public class CommitLog { // assuming version here. We've gone to lengths to make sure what gets written to the CL is in // the current version. so do make sure the CL is drained prior to upgrading a node. - rm = RowMutation.serializer().deserialize(new DataInputStream(bufIn), MessagingService.version_); + rm = RowMutation.serializer().deserialize(new DataInputStream(bufIn), MessagingService.version_, false); } catch (UnserializableColumnFamilyException ex) { Modified: cassandra/branches/cassandra-0.8.1/test/unit/org/apache/cassandra/db/RecoveryManagerTest.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8.1/test/unit/org/apache/cassandra/db/RecoveryManagerTest.java?rev=1102349&r1=1102348&r2=1102349&view=diff ============================================================================== --- cassandra/branches/cassandra-0.8.1/test/unit/org/apache/cassandra/db/RecoveryManagerTest.java (original) +++ cassandra/branches/cassandra-0.8.1/test/unit/org/apache/cassandra/db/RecoveryManagerTest.java Thu May 12 15:22:37 2011 @@ -26,6 +26,7 @@ import org.junit.Test; import org.apache.cassandra.CleanupHelper; import org.apache.cassandra.db.commitlog.CommitLog; +import org.apache.cassandra.utils.ByteBufferUtil; import org.apache.cassandra.Util; import static org.apache.cassandra.Util.column; @@ -69,4 +70,36 @@ public class RecoveryManagerTest extends assertColumns(Util.getColumnFamily(table1, dk, "Standard1"), "col1"); assertColumns(Util.getColumnFamily(table2, dk, "Standard3"), "col2"); } + + @Test + public void testRecoverCounter() throws IOException, ExecutionException, InterruptedException + { + Table table1 = Table.open("Keyspace1"); + + RowMutation rm; + DecoratedKey dk = Util.dk("key"); + ColumnFamily cf; + + for (int i = 0; i < 10; ++i) + { + rm = new RowMutation("Keyspace1", dk.key); + cf = ColumnFamily.create("Keyspace1", "Counter1"); + cf.addColumn(new CounterColumn(ByteBufferUtil.bytes("col"), 1L, 1L)); + rm.add(cf); + rm.apply(); + } + + table1.getColumnFamilyStore("Counter1").clearUnsafe(); + + CommitLog.instance.resetUnsafe(); // disassociate segments from live CL + CommitLog.recover(); + + cf = Util.getColumnFamily(table1, dk, "Counter1"); + + assert cf.getColumnCount() == 1; + IColumn c = cf.getColumn(ByteBufferUtil.bytes("col")); + + assert c != null; + assert ((CounterColumn)c).total() == 10L; + } }