You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2011/03/09 03:58:26 UTC
svn commit: r1079650 - in
/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra:
db/CompactionManager.java io/LazilyCompactedRow.java
io/PrecompactedRow.java io/sstable/SSTableWriter.java
Author: jbellis
Date: Wed Mar 9 02:58:26 2011
New Revision: 1079650
URL: http://svn.apache.org/viewvc?rev=1079650&view=rev
Log:
add asserts to make sure we don't write zero-length rows; see CASSANDRA-2296
Modified:
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/LazilyCompactedRow.java
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/PrecompactedRow.java
cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java?rev=1079650&r1=1079649&r2=1079650&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/db/CompactionManager.java Wed Mar 9 02:58:26 2011
@@ -1122,6 +1122,7 @@ public class CompactionManager implement
public void write(PageCacheInformer out) throws IOException
{
+ assert row.dataSize != 0;
out.writeLong(row.dataSize);
row.echoData(out);
}
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/LazilyCompactedRow.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/LazilyCompactedRow.java?rev=1079650&r1=1079649&r2=1079650&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/LazilyCompactedRow.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/LazilyCompactedRow.java Wed Mar 9 02:58:26 2011
@@ -98,6 +98,7 @@ public class LazilyCompactedRow extends
if (rows.size() == 1 && !shouldPurge && rows.get(0).sstable.descriptor.isLatestVersion && !forceDeserialize)
{
SSTableIdentityIterator row = rows.get(0);
+ assert row.dataSize != 0;
out.writeLong(row.dataSize);
row.echoData(out);
return;
@@ -106,7 +107,9 @@ public class LazilyCompactedRow extends
DataOutputBuffer clockOut = new DataOutputBuffer();
ColumnFamily.serializer().serializeCFInfo(emptyColumnFamily, clockOut);
- out.writeLong(headerBuffer.getLength() + clockOut.getLength() + columnSerializedSize);
+ long dataSize = headerBuffer.getLength() + clockOut.getLength() + columnSerializedSize;
+ assert dataSize != 0;
+ out.writeLong(dataSize);
out.write(headerBuffer.getData(), 0, headerBuffer.getLength());
out.write(clockOut.getData(), 0, clockOut.getLength());
out.writeInt(columnCount);
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/PrecompactedRow.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/PrecompactedRow.java?rev=1079650&r1=1079649&r2=1079650&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/PrecompactedRow.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/PrecompactedRow.java Wed Mar 9 02:58:26 2011
@@ -118,6 +118,7 @@ public class PrecompactedRow extends Abs
public void write(PageCacheInformer out) throws IOException
{
+ assert buffer.getLength() != 0;
out.writeLong(buffer.getLength());
List<Pair<Integer, Integer>> pageCacheMarkers = buffer.getPageCacheMarkers();
Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java?rev=1079650&r1=1079649&r2=1079650&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/io/sstable/SSTableWriter.java Wed Mar 9 02:58:26 2011
@@ -147,7 +147,9 @@ public class SSTableWriter extends SSTab
// seek back and write the row size (not including the size Long itself)
long endPosition = dataFile.getFilePointer();
dataFile.seek(sizePosition);
- dataFile.writeLong(endPosition - (sizePosition + 8));
+ long dataSize = endPosition - (sizePosition + 8);
+ assert dataSize != 0;
+ dataFile.writeLong(dataSize);
// finally, reset for next row
dataFile.seek(endPosition);
afterAppend(decoratedKey, startPosition);