rocksdb/db
Dhruba Borthakur afed60938f Fox db_stress crash by copying keys before changing sequencenum to zero.
Summary:
The compaction process zeros out sequence numbers if the output is
part of the bottommost level.
The Slice is supposed to refer to an immutable data buffer. The
merger that implements the priority queue while reading kvs as
the input of a compaction run reies on this fact. The bug was that
were updating the sequence number of a record in-place and that was
causing suceeding invocations of the merger to return kvs in
arbitrary order of sequence numbers.
The fix is to copy the key to a local memory buffer before setting
its seqno to 0.

Test Plan:
Set Options.purge_redundant_kvs_while_flush = false and then run
db_stress --ops_per_thread=1000 --max_key=320

Reviewers: emayanke, sheki

Reviewed By: emayanke

CC: leveldb

Differential Revision: https://reviews.facebook.net/D9147
2013-03-06 10:52:08 -08:00
..
builder.cc Ability for rocksdb to compact when flushing the in-memory memtable to a file in L0. 2013-03-04 00:01:47 -08:00
builder.h Ability for rocksdb to compact when flushing the in-memory memtable to a file in L0. 2013-03-04 00:01:47 -08:00
c_test.c Fix poor error on num_levels mismatch and few other minor improvements 2013-01-25 15:37:26 -08:00
c.cc Fix poor error on num_levels mismatch and few other minor improvements 2013-01-25 15:37:26 -08:00
corruption_test.cc Codemod NULL to nullptr 2013-02-28 18:04:58 -08:00
db_bench.cc Add rate_delay_limit_milliseconds 2013-03-04 07:41:15 -08:00
db_filesnapshot.cc Fix all the lint errors. 2012-11-28 17:18:41 -08:00
db_impl_readonly.cc Fix for the weird behaviour encountered by ldb Get where it could read only the second-latest value 2013-02-20 10:45:52 -08:00
db_impl_readonly.h Add a readonly db 2012-11-07 14:19:48 -08:00
db_impl.cc Fox db_stress crash by copying keys before changing sequencenum to zero. 2013-03-06 10:52:08 -08:00
db_impl.h Add rate_delay_limit_milliseconds 2013-03-04 07:41:15 -08:00
db_iter.cc A number of fixes: 2011-10-31 17:22:06 +00:00
db_iter.h A number of fixes: 2011-10-31 17:22:06 +00:00
db_statistics.h Refactor statistics. Remove individual functions like incNumFileOpens 2013-02-25 13:58:34 -08:00
db_stats_logger.cc remove boost 2012-09-16 19:33:43 -07:00
db_test.cc Add rate_delay_limit_milliseconds 2013-03-04 07:41:15 -08:00
dbformat_test.cc Fix all warnings generated by -Wall option to the compiler. 2012-11-06 14:07:31 -08:00
dbformat.cc manifest_dump: Add --hex=1 option 2012-12-16 08:58:28 -08:00
dbformat.h Fox db_stress crash by copying keys before changing sequencenum to zero. 2013-03-06 10:52:08 -08:00
filename_test.cc Added meta-database support. 2012-12-17 11:26:59 -08:00
filename.cc Allow the logs to be purged by TTL. 2013-02-04 19:42:40 -08:00
filename.h Added meta-database support. 2012-12-17 11:26:59 -08:00
log_file.h GetUpdatesSince API to enable replication. 2012-12-07 11:42:13 -08:00
log_format.h A number of fixes: 2011-10-31 17:22:06 +00:00
log_reader.cc Codemod NULL to nullptr 2013-02-28 18:04:58 -08:00
log_reader.h Codemod NULL to nullptr 2013-02-28 18:04:58 -08:00
log_test.cc Fix a number of object lifetime/ownership issues 2013-01-23 16:54:11 -08:00
log_writer.cc Fix a number of object lifetime/ownership issues 2013-01-23 16:54:11 -08:00
log_writer.h Fix a number of object lifetime/ownership issues 2013-01-23 16:54:11 -08:00
memtable.cc Ability for rocksdb to compact when flushing the in-memory memtable to a file in L0. 2013-03-04 00:01:47 -08:00
memtable.h Ability for rocksdb to compact when flushing the in-memory memtable to a file in L0. 2013-03-04 00:01:47 -08:00
memtablelist.cc Codemod NULL to nullptr 2013-02-28 18:04:58 -08:00
memtablelist.h Codemod NULL to nullptr 2013-02-28 18:04:58 -08:00
repair.cc Ability for rocksdb to compact when flushing the in-memory memtable to a file in L0. 2013-03-04 00:01:47 -08:00
skiplist_test.cc Codemod NULL to nullptr 2013-02-28 18:04:58 -08:00
skiplist.h Codemod NULL to nullptr 2013-02-28 18:04:58 -08:00
snapshot.h Ability for rocksdb to compact when flushing the in-memory memtable to a file in L0. 2013-03-04 00:01:47 -08:00
table_cache.cc Removed unnecesary file object in table_cache. 2013-03-04 13:56:23 -08:00
table_cache.h Codemod NULL to nullptr 2013-02-28 18:04:58 -08:00
transaction_log_iterator_impl.cc Codemod NULL to nullptr 2013-02-28 18:04:58 -08:00
transaction_log_iterator_impl.h Fix a number of object lifetime/ownership issues 2013-01-23 16:54:11 -08:00
version_edit_test.cc Make some variables configurable for each db instance 2012-06-27 14:36:31 -07:00
version_edit.cc Codemod NULL to nullptr 2013-02-28 18:04:58 -08:00
version_edit.h Fix poor error on num_levels mismatch and few other minor improvements 2013-01-25 15:37:26 -08:00
version_set_reduce_num_levels.cc disable size compaction in ldb reduce_levels and added compression and file size parameter to it 2012-11-09 10:14:47 -08:00
version_set_test.cc Codemod NULL to nullptr 2013-02-28 18:04:58 -08:00
version_set.cc Add rate_delay_limit_milliseconds 2013-03-04 07:41:15 -08:00
version_set.h Add rate_delay_limit_milliseconds 2013-03-04 07:41:15 -08:00
write_batch_internal.h GetUpdatesSince API to enable replication. 2012-12-07 11:42:13 -08:00
write_batch_test.cc Fix all warnings generated by -Wall option to the compiler. 2012-11-06 14:07:31 -08:00
write_batch.cc added group commit; drastically speeds up mult-threaded synchronous write workloads 2012-03-08 16:23:21 -08:00