[ https://issues.apache.org/jira/browse/CASSANDRA-5385?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Carl Yeksigian updated CASSANDRA-5385: -------------------------------------- Attachment: 5385-v2.patch The problem with the OOM is actually something that shows what is wrong (it's not a symptom). We can add back the scrub test, as it should pass now. Before sstable version ia, the size of the bloom filter was written in the column header, along with the bloom filter. In 1.2, the Murmur3 partitioner was added, which dropped the size of the bloom filter as the first parameter. If we tried to read a bloom filter that was encoded in a pre-ia table, we would fail, skip it (using index helper), and it would skip the correct number of bytes. Now, we need to distinguish between the bloom filter stored in the sstable and the one stored in the filter component. This patch fixes the LegacySSTableTest by distinguishing between the sstables written in the ia format (which didn't write the size of the bloom filter up front) and the pre-ia format. > IndexHelper.skipBloomFilters won't skip non-SHA filters > ------------------------------------------------------- > > Key: CASSANDRA-5385 > URL: https://issues.apache.org/jira/browse/CASSANDRA-5385 > Project: Cassandra > Issue Type: Bug > Affects Versions: 1.2.0, 2.0 > Reporter: Carl Yeksigian > Assignee: Carl Yeksigian > Fix For: 1.2.4, 2.0 > > Attachments: 5385.patch, 5385-v2.patch > > > Currently, if the bloom filter is not of SHA type, we do not properly skip > the bytes. We need to read out the number of bytes, as happens in the Murmur > deserializer, then skip that many bytes instead of just skipping the hash > size. The version needs to be passed into the method as well, so that it > knows what type of index it is, and does the appropriate skipping. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators For more information on JIRA, see: http://www.atlassian.com/software/jira