[ https://issues.apache.org/jira/browse/CASSANDRA-3390?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Jonathan Ellis updated CASSANDRA-3390: -------------------------------------- Attachment: 3390.txt It looks like the culprit is this part: {code} if (sliceFilter.count >= cached.getColumnCount()) {code} ... then we don't clone the cached CF. But this is broken as-written; it's possible for new columns to be inserted, increasing the cached's row size after the check. I think the right thing to do here is jut get rid of this special case. We could try to preserve it by only skipping thie copy when the requested count == MAXINT, but that's contrary to best-practices (we strongly discourage using MAXINT as the limit). > ReadResponseSerializer.serializedSize() calculation is wrong > ------------------------------------------------------------ > > Key: CASSANDRA-3390 > URL: https://issues.apache.org/jira/browse/CASSANDRA-3390 > Project: Cassandra > Issue Type: Bug > Affects Versions: 1.0.1 > Reporter: Yang Yang > Fix For: 1.0.1 > > Attachments: 3390.patch, 3390.txt > > > in ReadResponse.java > the following code > public long serializedSize(ReadResponse response, int version) > { > int size = DBConstants.intSize; > size += (response.isDigestQuery() ? response.digest() : > ByteBufferUtil.EMPTY_BYTE_BUFFER).remaining(); > size += DBConstants.boolSize; > if (response.isDigestQuery()) > size += response.digest().remaining(); > else > size += Row.serializer().serializedSize(response.row(), version); > return size; > } > adds the digest size 2 times > this triggers assertion error in at least ReadVerbHandler -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira