Buggy code:
public class CollationController { private static Logger logger = LoggerFactory . getLogger ( CollationController . class ) ; private final ColumnFamilyStore cfs ; private final boolean mutableColumns ; private final QueryFilter filter ; private final int gcBefore ; private int sstablesIterated = 0 ; public CollationController ( ColumnFamilyStore cfs , boolean mutableColumns , QueryFilter filter , int gcBefore ) { } public ColumnFamily getTopLevelColumns ( ) { } private ColumnFamily collectTimeOrderedData ( ) { CollationController . logger . debug ( "collectTimeOrderedData" ) ; ISortedColumns . Factory factory = ( mutableColumns ) ? ThreadSafeSortedColumns . factory ( ) : TreeMapBackedSortedColumns . factory ( ) ; ColumnFamily container = ColumnFamily . create ( cfs . metadata , factory , filter . filter . isReversed ( ) ) ; List < IColumnIterator > iterators = new ArrayList < IColumnIterator > ( ) ; ColumnFamilyStore . ViewFragment view = cfs . markReferenced ( filter . key ) ; try { for ( Memtable memtable : view . memtables ) { IColumnIterator iter = filter . getMemtableColumnIterator ( memtable , cfs . metadata . comparator ) ; if ( iter != null ) { iterators . add ( iter ) ; container . delete ( iter . getColumnFamily ( ) ) ; while ( iter . hasNext ( ) ) container . addColumn ( iter . next ( ) ) ; } } TreeSet < ByteBuffer > filterColumns = new TreeSet < ByteBuffer > ( ( ( NamesQueryFilter ) ( filter . filter ) ) . columns ) ; QueryFilter reducedFilter = new QueryFilter ( filter . key , filter . path , new NamesQueryFilter ( filterColumns ) ) ; Collections . sort ( view . sstables , maxTimestampComparator ) ; for ( SSTableReader sstable : view . sstables ) { long currentMaxTs = sstable . getMaxTimestamp ( ) ; reduceNameFilter ( reducedFilter , container , currentMaxTs ) ; if ( ( ( NamesQueryFilter ) ( reducedFilter . filter ) ) . columns . isEmpty ( ) ) break ; IColumnIterator iter = reducedFilter . getSSTableColumnIterator ( sstable ) ; iterators . add ( iter ) ; if ( ( iter . getColumnFamily ( ) ) != null ) { container . delete ( iter . getColumnFamily ( ) ) ; ( sstablesIterated ) ++ ; while ( iter . hasNext ( ) ) container . addColumn ( iter . next ( ) ) ; } } if ( iterators . isEmpty ( ) ) return null ; final ColumnFamily c2 = container ; CloseableIterator < IColumn > toCollate = new SimpleAbstractColumnIterator ( ) { final Iterator < IColumn > iter = c2 . iterator ( ) ; protected IColumn computeNext ( ) { return iter . hasNext ( ) ? iter . next ( ) : endOfData ( ) ; } public ColumnFamily getColumnFamily ( ) { return c2 ; } public DecoratedKey getKey ( ) { return filter . key ; } } ; ColumnFamily returnCF = container . cloneMeShallow ( ) ; filter . collateColumns ( returnCF , Collections . singletonList ( toCollate ) , cfs . metadata . comparator , gcBefore ) ; if ( ( ( sstablesIterated ) >= ( cfs . getMinimumCompactionThreshold ( ) ) ) && ( ( cfs . getCompactionStrategy ( ) ) instanceof SizeTieredCompactionStrategy ) ) { <START_BUG> RowMutation rm = new RowMutation ( cfs . table . name , new Row ( filter . key , returnCF ) ) ; <END_BUG> try { rm . applyUnsafe ( ) ; } catch ( IOException e ) { CollationController . logger . error ( "Error<seq2seq4repair_space>re-writing<seq2seq4repair_space>read<seq2seq4repair_space>results" , e ) ; } } return returnCF ; } finally { for ( IColumnIterator iter : iterators ) FileUtils . closeQuietly ( iter ) ; SSTableReader . releaseReferences ( view . sstables ) ; } } private void reduceNameFilter ( QueryFilter filter , ColumnFamily returnCF , long sstableTimestamp ) { } private ColumnFamily collectAllData ( ) { } public int getSstablesIterated ( ) { } }

Fix:
RowMutation rm = new RowMutation ( cfs . table . name , new Row ( filter . key , returnCF . cloneMe ( ) ) ) ;