rocksdb/java/rocksjni
Zhongyi Xie 3a18bb3e15 BaseDeltaIterator: always check valid() before accessing key() (#4702)
Summary:
Current implementation of `current_over_upper_bound_` fails to take into consideration that keys might be invalid in either base iterator or delta iterator. Calling key() in such scenario will lead to assertion failure and runtime errors.
This PR addresses the bug by adding check for valid keys before calling `IsOverUpperBound()`, also added test coverage for iterate_upper_bound usage in BaseDeltaIterator
Also recommit https://github.com/facebook/rocksdb/pull/4656 (It was reverted earlier due to bugs)
Pull Request resolved: https://github.com/facebook/rocksdb/pull/4702

Differential Revision: D13146643

Pulled By: miasantreble

fbshipit-source-id: 6d136929da12d0f2e2a5cea474a8038ec5cdf1d0
2018-11-30 15:35:13 -08:00
..
backupablejni.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
backupenginejni.cc Support range deletion tombstones in IngestExternalFile SSTs (#3778) 2018-07-13 22:43:09 -07:00
cassandra_compactionfilterjni.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
cassandra_value_operator.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
checkpoint.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
clock_cache.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
columnfamilyhandle.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
compact_range_options.cc Add CompactRangeOptions for Java (#4220) 2018-08-17 10:57:25 -07:00
compaction_filter_factory_jnicallback.cc Added CompactionFilterFactory support to RocksJava 2017-10-12 11:12:16 -07:00
compaction_filter_factory_jnicallback.h Added CompactionFilterFactory support to RocksJava 2017-10-12 11:12:16 -07:00
compaction_filter_factory.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
compaction_filter.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
compaction_options_fifo.cc RocksJava: Add the missing FIFO compaction options (#4609) 2018-11-26 17:02:08 -08:00
compaction_options_universal.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
comparator.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
comparatorjnicallback.cc Added CompactionFilterFactory support to RocksJava 2017-10-12 11:12:16 -07:00
comparatorjnicallback.h Added CompactionFilterFactory support to RocksJava 2017-10-12 11:12:16 -07:00
compression_options.cc Add bottommost_compression_opts to for bottommost_compression (#3985) 2018-06-27 17:42:38 -07:00
env_options.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
env.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
filter.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
ingest_external_file_options.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
iterator.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
jnicallback.cc Suppress lint in old files 2018-01-29 12:56:42 -08:00
jnicallback.h Suppress lint in old files 2018-01-29 12:56:42 -08:00
loggerjnicallback.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
loggerjnicallback.h Added CompactionFilterFactory support to RocksJava 2017-10-12 11:12:16 -07:00
lru_cache.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
memory_util.cc RocksJava: memory_util support (#4446) 2018-10-08 11:05:27 -07:00
memtablejni.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
merge_operator.cc Add UInt64AddOperator to rocksjava (#4448) 2018-10-12 17:35:47 -07:00
native_comparator_wrapper_test.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
optimistic_transaction_db.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
optimistic_transaction_options.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
options_util.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
options.cc Update all unique/shared_ptr instances to be qualified with namespace std (#4638) 2018-11-09 11:19:58 -08:00
portal.h Fix Java to C++ ticker conversions (#4719) 2018-11-27 10:17:07 -08:00
ratelimiterjni.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
remove_emptyvalue_compactionfilterjni.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
restorejni.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
rocks_callback_object.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
rocksdb_exception_test.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
rocksjni.cc add GetAggregatedLongProperty for Java API (#4379) 2018-09-19 17:46:59 -07:00
slice.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
snapshot.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
sst_file_manager.cc In delete scheduler, before ftruncate file for slow delete, check whether there is other hard links (#4093) 2018-07-09 15:28:12 -07:00
sst_file_writerjni.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
statistics.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
statisticsjni.cc Remove enable_internal_stats (#4714) 2018-11-27 12:58:58 -08:00
statisticsjni.h Suppress lint in old files 2018-01-29 12:56:42 -08:00
table.cc RocksJava: Add more flags to BlockBasedTableConfig (#4589) 2018-10-30 13:11:56 -07:00
transaction_db_options.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
transaction_db.cc Windows JNI build fixes (#4015) 2018-07-18 12:31:48 -07:00
transaction_log.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
transaction_notifier_jnicallback.cc Add TransactionDB and OptimisticTransactionDB to the Java API 2018-03-02 10:34:13 -08:00
transaction_notifier_jnicallback.h Add TransactionDB and OptimisticTransactionDB to the Java API 2018-03-02 10:34:13 -08:00
transaction_notifier.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
transaction_options.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
transaction.cc Remove warnings caused by unused variables in jni (#4345) 2018-09-05 13:42:34 -07:00
ttl.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
write_batch_test.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
write_batch_with_index.cc BaseDeltaIterator: always check valid() before accessing key() (#4702) 2018-11-30 15:35:13 -08:00
write_batch.cc comment unused parameters to turn on -Wunused-parameter flag 2018-04-12 17:59:16 -07:00
write_buffer_manager.cc Plumb WriteBufferManager through JNI (#4492) 2018-10-17 11:49:57 -07:00
writebatchhandlerjnicallback.cc Remove warnings caused by unused variables in jni (#4345) 2018-09-05 13:42:34 -07:00
writebatchhandlerjnicallback.h WriteUnPrepared: Add support for recovering WriteUnprepared transactions (#4078) 2018-07-06 17:59:13 -07:00