rocksdb/util
Marcin Dlugajczyk a618a16f44 New subcode for IOError to detect the ESTALE errno
Summary:
I'd like to propose a patch to expose a new IOError type with subcode kStaleFile to allow to detect when ESTALE error is returned. This allows the rocksdb consumers to handle this error separately from other IOErrors.

I've also added a missing string representation for the kDeadlock subcode, I believe calling ToString() on Status object with that subcode would result in an out of band access in the msgs array,

Please let me know if you have any questions or would like me to make any changes to this pull request.
Closes https://github.com/facebook/rocksdb/pull/1748

Differential Revision: D4387675

Pulled By: IslamAbdelRahman

fbshipit-source-id: 67feb13
2017-02-17 10:54:13 -08:00
..
aligned_buffer.h direct reads refactor 2017-01-11 16:54:12 -08:00
allocator.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
arena_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
arena.cc FreeBSD: malloc_usable_size is in <malloc_np.h> (#1428) 2016-10-28 10:44:52 -07:00
arena.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
autovector_test.cc Eliminate use of 'using namespace std'. Also remove a number of ADL references to std functions. 2016-05-20 07:42:18 -07:00
autovector.h Implement non-exclusive locks 2016-12-05 17:39:17 -08:00
bloom_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
bloom.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
build_version.cc.in Makefile: generate util/build_version.cc from .in file (#1384) 2016-10-25 11:31:39 -07:00
build_version.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
cache_bench.cc Introduce ClockCache 2016-08-19 12:28:19 -07:00
cache_test.cc NewLRUCache() to pick number of shard bits based on capacity if not given 2017-01-27 06:39:12 -08:00
cf_options.cc Remove disableDataSync option 2017-02-13 11:09:13 -08:00
cf_options.h Remove disableDataSync option 2017-02-13 11:09:13 -08:00
channel.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
clock_cache.cc NewLRUCache() to pick number of shard bits based on capacity if not given 2017-01-27 06:39:12 -08:00
clock_cache.h Introduce ClockCache 2016-08-19 12:28:19 -07:00
coding_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
coding.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
coding.h TableBuilder / TableReader support for range deletion 2016-08-19 15:10:31 -07:00
compaction_job_stats_impl.cc Single Delete Mismatch and Fallthrough statistics 2016-08-16 08:21:43 -07:00
comparator.cc Improve BytewiseComparatorImpl::FindShortestSeparator 2016-04-25 23:02:14 -07:00
compression.h Remove use of deprecated LZ4 function 2016-11-21 12:24:14 -08:00
concurrent_arena.cc Gcc 7 error expansion to defined 2016-12-13 18:39:14 -08:00
concurrent_arena.h Gcc 7 error expansion to defined 2016-12-13 18:39:14 -08:00
crc32c_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
crc32c.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
crc32c.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
db_options.cc Remove disableDataSync option 2017-02-13 11:09:13 -08:00
db_options.h Remove disableDataSync option 2017-02-13 11:09:13 -08:00
delete_scheduler_test.cc Windows thread 2017-02-06 14:54:18 -08:00
delete_scheduler.cc Windows thread 2017-02-06 14:54:18 -08:00
delete_scheduler.h Windows thread 2017-02-06 14:54:18 -08:00
dynamic_bloom_test.cc Windows thread 2017-02-06 14:54:18 -08:00
dynamic_bloom.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
dynamic_bloom.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
env_basic_test.cc Generalize Env registration framework 2017-01-25 16:09:14 -08:00
env_chroot.cc Support POSIX RandomRWFile 2016-09-13 12:08:22 -07:00
env_chroot.h Introduce chroot Env 2016-05-06 17:42:50 -07:00
env_hdfs.cc Return finer-granularity status from Env::GetChildren* 2016-12-12 12:54:13 -08:00
env_posix.cc avoid direct io in rocksdb_lite 2017-02-16 10:39:13 -08:00
env_test.cc avoid direct io in rocksdb_lite 2017-02-16 10:39:13 -08:00
env.cc direct io write support 2016-12-22 13:09:19 -08:00
event_logger_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
event_logger.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
event_logger.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
fault_injection_test_env.cc Flush job should release reference current version if sync log failed 2017-01-19 23:09:15 -08:00
fault_injection_test_env.h [rocksdb] Recovery path sequence miscount fix 2016-05-10 14:06:07 -07:00
file_reader_writer_test.cc avoid direct io in rocksdb_lite 2017-02-16 10:39:13 -08:00
file_reader_writer.cc avoid direct io in rocksdb_lite 2017-02-16 10:39:13 -08:00
file_reader_writer.h avoid direct io in rocksdb_lite 2017-02-16 10:39:13 -08:00
file_util.cc Always fsync the file after file copying 2016-12-28 19:09:16 -08:00
file_util.h Always fsync the file after file copying 2016-12-28 19:09:16 -08:00
filelock_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
filter_policy.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
hash_map.h Use more efficient hash map for deadlock detection 2016-11-19 11:39:15 -08:00
hash.cc Fix travis (compile for clang < 3.9) 2016-12-01 10:09:22 -08:00
hash.h Optimize sequential insert into memtable - Part 1: Interface 2016-11-13 19:09:18 -08:00
heap_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
heap.h Cache heap::downheap() root comparison (optimize heap cmp call) 2016-12-01 13:39:14 -08:00
histogram_test.cc Fix Build Error 2016-03-11 22:56:25 -08:00
histogram_windowing.cc Fix in HistogramWindowingImpl 2016-03-17 14:28:41 -07:00
histogram_windowing.h Histogram Concurrency Improvement and Time-Windowing Support 2016-03-11 16:54:25 -08:00
histogram.cc util/histogram.cc: HistogramStat::toString buffer insufficient 2016-12-13 14:09:12 -08:00
histogram.h Histogram Concurrency Improvement and Time-Windowing Support 2016-03-11 16:54:25 -08:00
instrumented_mutex.cc DBSSTTest.RateLimitedDelete: not to use real clock 2016-10-24 10:35:00 -07:00
instrumented_mutex.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
io_posix.cc Fix OSX build break after the fallocate change 2017-02-02 10:39:11 -08:00
io_posix.h New subcode for IOError to detect the ESTALE errno 2017-02-17 10:54:13 -08:00
iostats_context_imp.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
iostats_context_test.cc IOStatsContext::ToString() add option to exclude zero counters 2016-02-23 10:26:24 -08:00
iostats_context.cc IOStatsContext::ToString() add option to exclude zero counters 2016-02-23 10:26:24 -08:00
kv_map.h Store internal keys in TombstoneMap 2016-11-09 15:09:18 -08:00
log_buffer.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
log_buffer.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
log_write_bench.cc direct io write support 2016-12-22 13:09:19 -08:00
logging.cc util/logging.cc: buffer of insufficient size (gcc-7 -Werror=format-length) 2016-12-13 18:39:14 -08:00
logging.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
lru_cache_test.cc LRU cache mid-point insertion 2016-08-19 16:43:31 -07:00
lru_cache.cc NewLRUCache() to pick number of shard bits based on capacity if not given 2017-01-27 06:39:12 -08:00
lru_cache.h Allow incrementing refcount on cache handles 2017-01-10 16:54:20 -08:00
memenv.cc direct io write support 2016-12-22 13:09:19 -08:00
memory_usage.h Report memory usage by memtable insert hints map. 2016-11-15 20:24:13 -08:00
mock_env_test.cc Create env_basic_test [pluggable Env part 2] 2016-06-03 15:13:03 -07:00
mock_env.cc direct io write support 2016-12-22 13:09:19 -08:00
mock_env.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
murmurhash.cc Gcc 7 fallthrough 2016-12-14 19:24:25 -08:00
murmurhash.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
mutexlock.h Persistent Read Cache (6) Persistent cache tier implentation - File layout 2016-07-19 12:01:46 -07:00
options_helper.cc Remove disableDataSync option 2017-02-13 11:09:13 -08:00
options_helper.h Remove disableDataSync option 2017-02-13 11:09:13 -08:00
options_parser.cc Remove function local statics that interfere with memory pooling (#1392) 2016-10-14 13:09:18 -07:00
options_parser.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
options_sanity_check.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
options_sanity_check.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
options_settable_test.cc Remove disableDataSync option 2017-02-13 11:09:13 -08:00
options_test.cc Remove disableDataSync option 2017-02-13 11:09:13 -08:00
options.cc Remove disableDataSync option 2017-02-13 11:09:13 -08:00
perf_context_imp.h fix ios build error 2016-02-17 20:22:40 +08:00
perf_context.cc Less linear search in DBIter::Seek() when keys are overwritten a lot 2016-11-28 10:24:11 -08:00
perf_level_imp.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
perf_level.cc Assert boundary checks for SetPerfLevel() 2016-06-01 09:07:09 -07:00
perf_step_timer.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
posix_logger.h Show More DB Stats in info logs 2016-10-29 16:09:18 -07:00
random.cc Gcc 7 error expansion to defined 2016-12-13 18:39:14 -08:00
random.h Fixes warnings and ensure correct int behavior on 32-bit platforms. 2016-03-16 22:57:57 +01:00
rate_limiter_test.cc Relax the acceptable bias RateLimiterTest::Rate test be 25% 2016-10-13 14:26:12 -07:00
rate_limiter.cc Use monotonic time points in write_controller.cc and rate_limiter.cc 2017-02-14 18:24:24 -08:00
rate_limiter.h Use monotonic time points in write_controller.cc and rate_limiter.cc 2017-02-14 18:24:24 -08:00
sharded_cache.cc NewLRUCache() to pick number of shard bits based on capacity if not given 2017-01-27 06:39:12 -08:00
sharded_cache.h NewLRUCache() to pick number of shard bits based on capacity if not given 2017-01-27 06:39:12 -08:00
slice_transform_test.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
slice.cc Merge db/slice.cc into util/slice.cc 2016-06-10 16:37:36 -07:00
sst_file_manager_impl.cc fixed typo 2017-01-23 12:54:13 -08:00
sst_file_manager_impl.h Remove sst_file_manager option from LITE 2016-12-21 17:54:21 -08:00
statistics_test.cc Fix Statistics TickersNameMap miss match with Tickers enum 2016-07-25 16:05:50 -07:00
statistics.cc Fix deadlock when calling getMergedHistogram 2016-11-20 18:24:12 -08:00
statistics.h Add Statistics::getAndResetTickerCount(). 2016-10-11 10:54:11 -07:00
status_message.cc New subcode for IOError to detect the ESTALE errno 2017-02-17 10:54:13 -08:00
status.cc Fix rocksdb::Status::getState 2017-01-03 18:39:14 -08:00
stderr_logger.h Stderr info logger 2016-04-01 11:06:06 -07:00
stop_watch.h Use StopWatch to do statistic job in db_impl_add_file.cc 2016-08-02 14:53:29 -07:00
string_util.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
string_util.h FreeBSD does not have std::to_string (#1190) 2016-06-29 07:35:17 -07:00
sync_point.cc gcc-7 requires include <functional> for std::function 2016-12-16 11:24:18 -08:00
sync_point.h gcc-7 requires include <functional> for std::function 2016-12-16 11:24:18 -08:00
testharness.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
testharness.h Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
testutil.cc Remove disableDataSync option 2017-02-13 11:09:13 -08:00
testutil.h Support SST files with Global sequence numbers [reland] 2016-10-18 16:59:37 -07:00
thread_list_test.cc Gcc 7 error expansion to defined 2016-12-13 18:39:14 -08:00
thread_local_test.cc Windows thread 2017-02-06 14:54:18 -08:00
thread_local.cc Move ThreadLocal implementation into .cc 2017-02-02 14:09:12 -08:00
thread_local.h Move ThreadLocal implementation into .cc 2017-02-02 14:09:12 -08:00
thread_operation.h Gcc 7 error expansion to defined 2016-12-13 18:39:14 -08:00
thread_status_impl.cc Gcc 7 error expansion to defined 2016-12-13 18:39:14 -08:00
thread_status_updater_debug.cc Gcc 7 error expansion to defined 2016-12-13 18:39:14 -08:00
thread_status_updater.cc Gcc 7 error expansion to defined 2016-12-13 18:39:14 -08:00
thread_status_updater.h Gcc 7 error expansion to defined 2016-12-13 18:39:14 -08:00
thread_status_util_debug.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
thread_status_util.cc Gcc 7 error expansion to defined 2016-12-13 18:39:14 -08:00
thread_status_util.h Gcc 7 error expansion to defined 2016-12-13 18:39:14 -08:00
threadpool_imp.cc Windows thread 2017-02-06 14:54:18 -08:00
threadpool_imp.h Windows thread 2017-02-06 14:54:18 -08:00
transaction_test_util.cc Gcc-7 buffer size insufficient 2016-12-14 19:24:26 -08:00
transaction_test_util.h Fix AppVeyor build error 2016-03-15 10:57:33 -07:00
xfunc.cc Updated all copyright headers to the new format. 2016-02-09 15:12:00 -08:00
xfunc.h gcc-7 requires include <functional> for std::function 2016-12-16 11:24:18 -08:00
xxhash.cc Enable MS Warning C4804 : unsafe use of type 'bool' in operation 2015-11-18 16:23:19 -08:00
xxhash.h Prevent xxhash symbols from polluting global namespace 2015-03-12 12:07:10 -07:00