Buggy code:
public void replaceCompactedSSTables ( Collection < SSTableReader > sstables , Iterable < SSTableReader > replacements ) { } void replaceFlushed ( Memtable memtable , SSTableReader sstable ) { } public boolean isInvalid ( ) { } public void removeAllSSTables ( ) throws IOException { } public long getMemtableColumnsCount ( ) { } public long getMemtableDataSize ( ) { } public long getTotalMemtableLiveSize ( ) { } public int getMemtableSwitchCount ( ) { } private Memtable getMemtableThreadSafe ( ) { } public DataTracker getDataTracker ( ) { } public Collection < SSTableReader > getSSTables ( ) { } public long [ ] getRecentSSTablesPerReadHistogram ( ) { } public long [ ] getSSTablesPerReadHistogram ( ) { } public long getReadCount ( ) { } public double getRecentReadLatencyMicros ( ) { } public long [ ] getLifetimeReadLatencyHistogramMicros ( ) { } public long [ ] getRecentReadLatencyHistogramMicros ( ) { } public long getTotalReadLatencyMicros ( ) { } public int getPendingTasks ( ) { } public long getWriteCount ( ) { } public long getTotalWriteLatencyMicros ( ) { } public double getRecentWriteLatencyMicros ( ) { } public long [ ] getLifetimeWriteLatencyHistogramMicros ( ) { } public long [ ] getRecentWriteLatencyHistogramMicros ( ) { } public ColumnFamily getColumnFamily ( DecoratedKey key , QueryPath path , ByteBuffer start , ByteBuffer finish , boolean reversed , int limit ) { } public ColumnFamily getColumnFamily ( QueryFilter filter ) { } public ColumnFamily getColumnFamily ( QueryFilter filter , ISortedColumns . Factory factory ) { } public int gcBefore ( ) { } private ColumnFamily cacheRow ( DecoratedKey key ) { } private ColumnFamily getColumnFamily ( QueryFilter filter , int gcBefore ) { } ColumnFamily filterColumnFamily ( ColumnFamily cached , QueryFilter filter , int gcBefore ) { } private View markCurrentViewReferenced ( ) { } public Collection < SSTableReader > markCurrentSSTablesReferenced ( ) { } public ColumnFamilyStore . ViewFragment markReferenced ( DecoratedKey key ) { } public ColumnFamilyStore . ViewFragment markReferenced ( DecoratedKey startWith , DecoratedKey stopAt ) { } private ColumnFamily getTopLevelColumns ( QueryFilter filter , int gcBefore , boolean forCache ) { } public List < Row > getRangeSlice ( ByteBuffer superColumn , final AbstractBounds range , int maxResults , IFilter columnFilter ) throws InterruptedException , ExecutionException { } public List < Row > search ( IndexClause clause , AbstractBounds range , IFilter dataFilter ) { } public AbstractType getComparator ( ) { } private void snapshotWithoutFlush ( String snapshotName ) { } public void snapshot ( String snapshotName ) { } public boolean hasUnreclaimedSpace ( ) { } public long getTotalDiskSpaceUsed ( ) { } public long getLiveDiskSpaceUsed ( ) { } public int getLiveSSTableCount ( ) { } public ColumnFamily getRawCachedRow ( DecoratedKey key ) { } public void invalidateCachedRow ( DecoratedKey key ) { } public void forceMajorCompaction ( ) throws InterruptedException , ExecutionException { } public void invalidateRowCache ( ) { } public void invalidateKeyCache ( ) { } public int getRowCacheCapacity ( ) { } public int getKeyCacheCapacity ( ) { } public int getRowCacheSize ( ) { } public int getKeyCacheSize ( ) { } public static Iterable < ColumnFamilyStore > all ( ) { } public Iterable < DecoratedKey > allKeySamples ( ) { } public Iterable < DecoratedKey > keySamples ( Range range ) { } void clearUnsafe ( ) { } private void waitForActiveFlushes ( ) { } public Future < ? > truncate ( ) throws IOException , InterruptedException , ExecutionException { ColumnFamilyStore . logger . debug ( "truncating<seq2seq4repair_space>{}" , columnFamily ) ; forceBlockingFlush ( ) ; instance . forceNewSegment ( ) ; ReplayPosition position = instance . getContext ( ) ; for ( ColumnFamilyStore cfs : ColumnFamilyStore . all ( ) ) cfs . forceFlush ( ) ; waitForActiveFlushes ( ) ; instance . discardCompletedSegments ( metadata . cfId , position ) ; try { Thread . sleep ( 100 ) ; } catch ( InterruptedException e ) { throw new AssertionError ( e ) ; } long truncatedAt = System . currentTimeMillis ( ) ; <START_BUG> snapshot ( Table . getTimestampedSnapshotName ( "before-truncate" ) ) ; <END_BUG> return CompactionManager . instance . submitTruncate ( this , truncatedAt ) ; } public void renameSSTables ( String newCfName ) throws IOException { } public long getBloomFilterFalsePositives ( ) { } public long getRecentBloomFilterFalsePositives ( ) { } public double getBloomFilterFalseRatio ( ) { } public double getRecentBloomFilterFalseRatio ( ) { } @ Override public String toString ( ) { } public void disableAutoCompaction ( ) { } public AbstractCompactionStrategy getCompactionStrategy ( ) { } public int getMinimumCompactionThreshold ( ) { } public void setMinimumCompactionThreshold ( int minCompactionThreshold ) { } public int getMaximumCompactionThreshold ( ) { } public void setMaximumCompactionThreshold ( int maxCompactionThreshold ) { } public boolean isCompactionDisabled ( ) { } public int getRowCacheSavePeriodInSeconds ( ) { } public void setRowCacheSavePeriodInSeconds ( int rcspis ) { } public int getKeyCacheSavePeriodInSeconds ( ) { } public void setKeyCacheSavePeriodInSeconds ( int kcspis ) { } public int getRowCacheKeysToSave ( ) { } public void setRowCacheKeysToSave ( int keysToSave ) { } public long estimateKeys ( ) { } public synchronized void updateCacheSizes ( ) { } public long [ ] getEstimatedRowSizeHistogram ( ) { } public long [ ] getEstimatedColumnCountHistogram ( ) { } public boolean isIndex ( ) { } private String getParentColumnfamily ( ) { } public void reduceCacheSizes ( ) { } private ByteBuffer intern ( ByteBuffer name ) { } public ByteBuffer internOrCopy ( ByteBuffer name , Allocator allocator ) { } public ByteBuffer maybeIntern ( ByteBuffer name ) { } public SSTableWriter createFlushWriter ( long estimatedRows , long estimatedSize , ReplayPosition context ) throws IOException { } public SSTableWriter createCompactionWriter ( long estimatedRows , String location , Collection < SSTableReader > sstables ) throws IOException { } public Iterable < ColumnFamilyStore > concatWithIndexes ( ) { } public Set < Memtable > getMemtablesPendingFlush ( ) { } public List < String > getBuiltIndexes ( ) { }

Fix:
snapshot ( Table . getTimestampedSnapshotName ( columnFamily ) ) ;