rocksdb/db
Yi Wu 7513f63505 Fix IOError on WAL write doesn't propagate to write group follower
Summary:
This is a simpler version of #3097 by removing all unrelated changes.

Fixing the bug where concurrent writes may get Status::OK while it actually gets IOError on WAL write. This happens when multiple writes form a write batch group, and the leader get an IOError while writing to WAL. The leader failed to pass the error to followers in the group, and the followers end up returning Status::OK() while actually writing nothing. The bug only affect writes in a batch group. Future writes after the batch group will correctly return immediately with the IOError.
Closes https://github.com/facebook/rocksdb/pull/3201

Differential Revision: D6421644

Pulled By: yiwu-arbug

fbshipit-source-id: 1c2a455c5b73f6842423785eb8a9dbfbb191dc0e
2017-11-28 12:33:26 -08:00
..
builder.cc Add DB::Properties::kEstimateOldestKeyTime 2017-10-23 22:12:30 -07:00
builder.h TableProperty::oldest_key_time defaults to 0 2017-10-27 15:29:11 -07:00
c_test.c Fix c_test ASAN failure 2017-08-11 13:00:15 -07:00
c.cc Improved transactions support in C API 2017-08-23 12:40:28 -07:00
column_family_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
column_family.cc dynamically change current memtable size 2017-11-03 14:16:57 -07:00
column_family.h Change RocksDB License 2017-07-15 16:11:23 -07:00
compact_files_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
compacted_db_impl.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
compacted_db_impl.h Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
compaction_iteration_stats.h add counter for deletion dropping optimization 2017-08-19 14:10:08 -07:00
compaction_iterator_test.cc Allow merge operator to be called even with a single operand 2017-08-16 23:42:00 -07:00
compaction_iterator.cc Blob DB: Add compaction filter to remove expired blob index entries 2017-11-02 23:42:39 -07:00
compaction_iterator.h Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
compaction_job_stats_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
compaction_job_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
compaction_job.cc add counter for deletion dropping optimization 2017-08-19 14:10:08 -07:00
compaction_job.h Change RocksDB License 2017-07-15 16:11:23 -07:00
compaction_picker_test.cc Fix FIFO compaction picker test 2017-07-26 12:12:26 -07:00
compaction_picker_universal.cc update scores after picking universal compaction 2017-08-16 18:42:33 -07:00
compaction_picker_universal.h Change RocksDB License 2017-07-15 16:11:23 -07:00
compaction_picker.cc Add DB::Properties::kEstimateOldestKeyTime 2017-10-23 22:12:30 -07:00
compaction_picker.h Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
compaction.cc Fix false removal of tombstone issue in FIFO and kCompactionStyleNone 2017-08-15 13:02:19 -07:00
compaction.h Change RocksDB License 2017-07-15 16:11:23 -07:00
comparator_db_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
convenience.cc add VerifyChecksum() to db.h 2017-08-09 15:58:13 -07:00
corruption_test.cc fix corruption_test valgrind 2017-08-11 12:29:14 -07:00
cuckoo_table_db_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
db_basic_test.cc support disabling checksum in block-based table 2017-08-23 19:40:47 -07:00
db_blob_index_test.cc fix lite build 2017-11-02 23:07:03 -07:00
db_block_cache_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
db_bloom_filter_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
db_compaction_filter_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
db_compaction_test.cc add counter for deletion dropping optimization 2017-08-19 14:10:08 -07:00
db_dynamic_level_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
db_encryption_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
db_filesnapshot.cc Remove some left-over BSD headers 2017-07-18 11:56:57 -07:00
db_flush_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
db_impl_compaction_flush.cc Introduce bottom-pri thread pool for large universal compactions 2017-08-03 15:43:29 -07:00
db_impl_debug.cc Add ValueType::kTypeBlobIndex 2017-11-02 23:02:50 -07:00
db_impl_experimental.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
db_impl_files.cc move TableCache::EraseHandle outside of db mutex 2017-07-27 12:14:41 -07:00
db_impl_open.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
db_impl_readonly.cc Add Iterator::Refresh() 2017-07-24 10:54:37 -07:00
db_impl_readonly.h Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
db_impl_write.cc Fix IOError on WAL write doesn't propagate to write group follower 2017-11-28 12:33:26 -08:00
db_impl.cc Blob DB: fix snapshot handling 2017-11-02 23:40:01 -07:00
db_impl.h Blob DB: fix snapshot handling 2017-11-02 23:40:01 -07:00
db_info_dumper.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
db_info_dumper.h Change RocksDB License 2017-07-15 16:11:23 -07:00
db_inplace_update_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
db_io_failure_test.cc Fix LITE unit tests 2017-07-26 21:11:47 -07:00
db_iter_test.cc Add Iterator::Refresh() 2017-07-24 10:54:37 -07:00
db_iter.cc Add ValueType::kTypeBlobIndex 2017-11-02 23:02:50 -07:00
db_iter.h Add ValueType::kTypeBlobIndex 2017-11-02 23:02:50 -07:00
db_iterator_test.cc perf_context measure user bytes read 2017-08-18 11:43:33 -07:00
db_log_iter_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
db_memtable_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
db_merge_operator_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
db_options_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
db_properties_test.cc Add DB::Properties::kEstimateOldestKeyTime 2017-10-23 22:12:30 -07:00
db_range_del_test.cc Fix wrong smallest key of delete range tombstones 2017-08-29 18:41:35 -07:00
db_sst_test.cc TableProperty::oldest_key_time defaults to 0 2017-10-27 15:29:11 -07:00
db_statistics_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
db_table_properties_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
db_tailing_iter_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
db_test2.cc fix lite build 2017-11-02 23:07:03 -07:00
db_test_util.cc Fix LITE unit tests 2017-07-26 21:11:47 -07:00
db_test_util.h Add DB::Properties::kEstimateOldestKeyTime 2017-10-23 22:12:30 -07:00
db_test.cc dynamically change current memtable size 2017-11-03 14:16:57 -07:00
db_universal_compaction_test.cc update scores after picking universal compaction 2017-08-16 18:42:33 -07:00
db_wal_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
db_write_test.cc Fix IOError on WAL write doesn't propagate to write group follower 2017-11-28 12:33:26 -08:00
dbformat_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
dbformat.cc Add ValueType::kTypeBlobIndex 2017-11-02 23:02:50 -07:00
dbformat.h Add ValueType::kTypeBlobIndex 2017-11-02 23:02:50 -07:00
deletefile_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
event_helpers.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
event_helpers.h Change RocksDB License 2017-07-15 16:11:23 -07:00
experimental.cc Replace dynamic_cast<> 2017-07-28 16:27:16 -07:00
external_sst_file_basic_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
external_sst_file_ingestion_job.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
external_sst_file_ingestion_job.h Change RocksDB License 2017-07-15 16:11:23 -07:00
external_sst_file_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
fault_injection_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
file_indexer_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
file_indexer.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
file_indexer.h Change RocksDB License 2017-07-15 16:11:23 -07:00
filename_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
flush_job_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
flush_job.cc TableProperty::oldest_key_time defaults to 0 2017-10-27 15:29:11 -07:00
flush_job.h Change RocksDB License 2017-07-15 16:11:23 -07:00
flush_scheduler.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
flush_scheduler.h Change RocksDB License 2017-07-15 16:11:23 -07:00
forward_iterator_bench.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
forward_iterator.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
forward_iterator.h Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
internal_stats.cc TableProperty::oldest_key_time defaults to 0 2017-10-27 15:29:11 -07:00
internal_stats.h Add DB::Properties::kEstimateOldestKeyTime 2017-10-23 22:12:30 -07:00
job_context.h Change RocksDB License 2017-07-15 16:11:23 -07:00
listener_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
log_format.h Change RocksDB License 2017-07-15 16:11:23 -07:00
log_reader.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
log_reader.h Change RocksDB License 2017-07-15 16:11:23 -07:00
log_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
log_writer.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
log_writer.h Change RocksDB License 2017-07-15 16:11:23 -07:00
malloc_stats.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
malloc_stats.h Change RocksDB License 2017-07-15 16:11:23 -07:00
managed_iterator.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
managed_iterator.h Change RocksDB License 2017-07-15 16:11:23 -07:00
manual_compaction_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
memtable_list_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
memtable_list.cc Blob DB: Store blob index as kTypeBlobIndex in base db 2017-11-02 23:37:07 -07:00
memtable_list.h Blob DB: Store blob index as kTypeBlobIndex in base db 2017-11-02 23:37:07 -07:00
memtable.cc dynamically change current memtable size 2017-11-03 14:16:57 -07:00
memtable.h dynamically change current memtable size 2017-11-03 14:16:57 -07:00
merge_context.h Change RocksDB License 2017-07-15 16:11:23 -07:00
merge_helper_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
merge_helper.cc Allow merge operator to be called even with a single operand 2017-08-16 23:42:00 -07:00
merge_helper.h Allow merge operator to be called even with a single operand 2017-08-16 23:42:00 -07:00
merge_operator.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
merge_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
options_file_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
perf_context_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
pinned_iterators_manager.h Change RocksDB License 2017-07-15 16:11:23 -07:00
plain_table_db_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
prefix_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
range_del_aggregator_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
range_del_aggregator.cc Fix wrong smallest key of delete range tombstones 2017-08-29 18:41:35 -07:00
range_del_aggregator.h Change RocksDB License 2017-07-15 16:11:23 -07:00
repair_test.cc Try to repair db with wal_dir option, avoid leak some WAL files 2017-08-08 10:47:57 -07:00
repair.cc Try to repair db with wal_dir option, avoid leak some WAL files 2017-08-08 10:47:57 -07:00
snapshot_impl.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
snapshot_impl.h Blob DB: fix snapshot handling 2017-11-02 23:40:01 -07:00
table_cache.cc fix db get/write stats 2017-07-31 12:12:03 -07:00
table_cache.h Change RocksDB License 2017-07-15 16:11:23 -07:00
table_properties_collector_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
table_properties_collector.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
table_properties_collector.h Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
transaction_log_impl.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
transaction_log_impl.h Change RocksDB License 2017-07-15 16:11:23 -07:00
version_builder_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
version_builder.cc Allow DB reopen with reduced options.num_levels 2017-08-24 16:10:54 -07:00
version_builder.h Allow DB reopen with reduced options.num_levels 2017-08-24 16:10:54 -07:00
version_edit_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
version_edit.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
version_edit.h Change RocksDB License 2017-07-15 16:11:23 -07:00
version_set_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
version_set.cc Add ValueType::kTypeBlobIndex 2017-11-02 23:02:50 -07:00
version_set.h Add ValueType::kTypeBlobIndex 2017-11-02 23:02:50 -07:00
wal_manager_test.cc Revert "comment out unused parameters" 2017-07-21 18:26:26 -07:00
wal_manager.cc Replace dynamic_cast<> 2017-07-28 16:27:16 -07:00
wal_manager.h Change RocksDB License 2017-07-15 16:11:23 -07:00
write_batch_base.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
write_batch_internal.h Add ValueType::kTypeBlobIndex 2017-11-02 23:02:50 -07:00
write_batch_test.cc Gcc 7 ParsedInternalKey replace memset with clear function. 2017-07-24 11:31:15 -07:00
write_batch.cc dynamically change current memtable size 2017-11-03 14:16:57 -07:00
write_callback_test.cc Fix flaky write_callback_test 2017-07-25 16:42:11 -07:00
write_callback.h Change RocksDB License 2017-07-15 16:11:23 -07:00
write_controller_test.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
write_controller.cc Change RocksDB License 2017-07-15 16:11:23 -07:00
write_controller.h Change RocksDB License 2017-07-15 16:11:23 -07:00
write_thread.cc Fix IOError on WAL write doesn't propagate to write group follower 2017-11-28 12:33:26 -08:00
write_thread.h fix comment 2017-08-09 22:57:01 -07:00