Sergio Bossa created CASSANDRA-13075: ----------------------------------------
Summary: Indexer is not correctly invoked when building indexes over sstables Key: CASSANDRA-13075 URL: https://issues.apache.org/jira/browse/CASSANDRA-13075 Project: Cassandra Issue Type: Bug Reporter: Sergio Bossa Priority: Critical Following CASSANDRA-12796, {{SecondaryIndexManager#indexPartition()}} calls each {{Indexer}} {{begin}} and {{finish}} methods multiple times per partition (depending on the page size), as {{PartitionIterators#getOnlyElement()}} returns an empty partition even when the iterator is exhausted. This leads to bugs for {{Indexer}} implementations doing actual work in those methods, but even worse, it provides the {{Indexer}} the same input of an empty partition containing only a non-live partition deletion, as the {{Indexer#partitionDelete()}} method is *not* actually called. My proposed solution: 1) Stop the iteration before the empty partition is returned and ingested into the {{Indexer}}. 2) Actually call the {{Indexer#partitionDelete()}} method inside {{SecondaryIndexManager#indexPartition()}} (which requires to use a filtered iterator so it actually contains the deletion info). -- This message was sent by Atlassian JIRA (v6.3.4#6332)