rocksdb/table/block_based
anand76 d6abf820d7 Fix multiscan crash when fill_cache=false (#13889)
Summary:
When fill_cache is ReadOptions is false, multi scan Prepare crashes with the following assertion failure. In this case, CreateAndPibBlockInCache needs to directly create a block with full ownership.

https://github.com/facebook/rocksdb/issues/9  0x00007f2fc003bc93 in __GI___assert_fail (assertion=0x7f2fc2147361 "pinned_data_blocks_guard[block_idx].GetValue()", file=0x7f2fc2146e08 "table/block_based/block_based_table_iterator.cc", line=1178, function=0x7f2fc2147262 "virtual void rocksdb::BlockBasedTableIterator::Prepare(const rocksdb::MultiScanArgs *)") at assert.c:101
101 in assert.c
https://github.com/facebook/rocksdb/issues/10 0x00007f2fc1d73088 in rocksdb::BlockBasedTableIterator::Prepare(rocksdb::MultiScanArgs const*) () from /data/users/anand76/rocksdb_anand76/librocksdb.so.10.6

Pull Request resolved: https://github.com/facebook/rocksdb/pull/13889

Test Plan: Parameterize the DBMultiScanIteratorTest tests with fill_cache

Reviewed By: cbi42

Differential Revision: D80552069

Pulled By: anand1976

fbshipit-source-id: 1a0b64af1e14c63d826add1f994a832ebff12757
2025-08-21 16:47:37 -07:00
..
binary_search_index_reader.cc Eliminate some parameters redundant with ReadOptions (#12761) 2024-06-12 15:44:37 -07:00
binary_search_index_reader.h Extend Get/MultiGet deadline support to table open (#6982) 2020-06-29 14:53:17 -07:00
block.cc Remove the 2 duplicated fields in block.h Block class (#13733) 2025-06-26 13:55:33 -07:00
block.h Remove the 2 duplicated fields in block.h Block class (#13733) 2025-06-26 13:55:33 -07:00
block_based_table_builder.cc Make UDI interface consistently use the user key (#13865) 2025-08-12 15:08:02 -07:00
block_based_table_builder.h Big refactor for preliminary custom compression API (#13540) 2025-05-15 17:14:23 -07:00
block_based_table_factory.cc Allow a user defined index to be configured from a string (#13880) 2025-08-14 10:14:20 -07:00
block_based_table_factory.h Preliminary support for custom compression algorithms (#13659) 2025-06-16 14:19:03 -07:00
block_based_table_iterator.cc Fix multiscan crash when fill_cache=false (#13889) 2025-08-21 16:47:37 -07:00
block_based_table_iterator.h Support Prepare() in BlockBasedTableIterator For MultiScan (#13778) 2025-07-17 10:00:21 -07:00
block_based_table_reader.cc Fix multiscan crash when fill_cache=false (#13889) 2025-08-21 16:47:37 -07:00
block_based_table_reader.h Fix multiscan crash when fill_cache=false (#13889) 2025-08-21 16:47:37 -07:00
block_based_table_reader_impl.h Big refactor for preliminary custom compression API (#13540) 2025-05-15 17:14:23 -07:00
block_based_table_reader_sync_and_async.h Fix multiscan crash when fill_cache=false (#13889) 2025-08-21 16:47:37 -07:00
block_based_table_reader_test.cc Support Prepare() in BlockBasedTableIterator For MultiScan (#13778) 2025-07-17 10:00:21 -07:00
block_builder.cc Compression API clarifcations/minor fixes (#13775) 2025-07-14 17:26:22 -07:00
block_builder.h Logically strip timestamp during flush (#11557) 2023-06-29 15:50:50 -07:00
block_cache.cc User defined index reader and iterator (#13727) 2025-07-15 10:37:20 -07:00
block_cache.h User defined index reader and iterator (#13727) 2025-07-15 10:37:20 -07:00
block_prefetcher.cc propagate request_id from app -> Rocks -> FS (#13616) 2025-05-16 21:25:50 -07:00
block_prefetcher.h Refactor FilePrefetchBuffer code (#12097) 2024-01-05 09:29:01 -08:00
block_prefix_index.cc Fix bug with kHashSearch and changing prefix_extractor with SetOptions (#10128) 2022-06-10 08:51:45 -07:00
block_prefix_index.h Fix bug with kHashSearch and changing prefix_extractor with SetOptions (#10128) 2022-06-10 08:51:45 -07:00
block_test.cc Big refactor for preliminary custom compression API (#13540) 2025-05-15 17:14:23 -07:00
block_type.h User defined index builder (#13726) 2025-07-08 15:10:10 -07:00
cachable_entry.h Support pro-actively erasing obsolete block cache entries (#12694) 2024-06-07 08:57:11 -07:00
data_block_footer.cc Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
data_block_footer.h Replace namespace name "rocksdb" with ROCKSDB_NAMESPACE (#6433) 2020-02-20 12:09:57 -08:00
data_block_hash_index.cc Format files under table/ by clang-format (#10852) 2022-10-25 11:50:38 -07:00
data_block_hash_index.h Fix build with gcc 13 by including <cstdint> (#11118) 2023-01-25 14:30:32 -08:00
data_block_hash_index_test.cc Preliminary support for custom compression algorithms (#13659) 2025-06-16 14:19:03 -07:00
filter_block.h Standardize on clang-format version 18 (#13233) 2024-12-19 10:58:40 -08:00
filter_block_reader_common.cc Big refactor for preliminary custom compression API (#13540) 2025-05-15 17:14:23 -07:00
filter_block_reader_common.h Remove redundant no_io parameters to filter functions (#12762) 2024-06-12 18:47:11 -07:00
filter_policy.cc Del redundant-static-def in rocksdb/src/table/block_based/filter_policy.cc +1 2025-07-09 16:36:31 -07:00
filter_policy_internal.h Clean up obsolete code in BlockBasedTable::PrefetchIndexAndFilterBlocks (#13277) 2025-01-08 18:03:46 -08:00
flush_block_policy.cc Change internal headers with duplicate names (#11408) 2023-05-17 11:27:09 -07:00
flush_block_policy_impl.h Change internal headers with duplicate names (#11408) 2023-05-17 11:27:09 -07:00
full_filter_block.cc Option to decouple index and filter partitions (#12939) 2024-08-16 15:34:31 -07:00
full_filter_block.h Option to decouple index and filter partitions (#12939) 2024-08-16 15:34:31 -07:00
full_filter_block_test.cc Optimize, simplify filter block building (fix regression) (#12931) 2024-08-14 15:13:16 -07:00
hash_index_reader.cc Big refactor for preliminary custom compression API (#13540) 2025-05-15 17:14:23 -07:00
hash_index_reader.h Extend Get/MultiGet deadline support to table open (#6982) 2020-06-29 14:53:17 -07:00
index_builder.cc Refactor IndexBuilder::AddIndexEntry (#12867) 2024-07-22 14:27:31 -07:00
index_builder.h User defined index builder (#13726) 2025-07-08 15:10:10 -07:00
index_reader_common.cc Big refactor for preliminary custom compression API (#13540) 2025-05-15 17:14:23 -07:00
index_reader_common.h Eliminate some parameters redundant with ReadOptions (#12761) 2024-06-12 15:44:37 -07:00
mock_block_based_table.h Remove deprecated block-based filter (#10184) 2022-06-16 15:51:33 -07:00
parsed_full_filter_block.cc Hide FilterBits{Builder,Reader} from public API (#9592) 2022-02-17 16:34:46 -08:00
parsed_full_filter_block.h Major Cache refactoring, CPU efficiency improvement (#10975) 2023-01-11 14:20:40 -08:00
partitioned_filter_block.cc propagate request_id from app -> Rocks -> FS (#13616) 2025-05-16 21:25:50 -07:00
partitioned_filter_block.h Option to decouple index and filter partitions (#12939) 2024-08-16 15:34:31 -07:00
partitioned_filter_block_test.cc Option to decouple index and filter partitions (#12939) 2024-08-16 15:34:31 -07:00
partitioned_index_iterator.cc Refactor FilePrefetchBuffer code (#12097) 2024-01-05 09:29:01 -08:00
partitioned_index_iterator.h Format files under table/ by clang-format (#10852) 2022-10-25 11:50:38 -07:00
partitioned_index_reader.cc Big refactor for preliminary custom compression API (#13540) 2025-05-15 17:14:23 -07:00
partitioned_index_reader.h Support pro-actively erasing obsolete block cache entries (#12694) 2024-06-07 08:57:11 -07:00
reader_common.cc Prefer static_cast in place of most reinterpret_cast (#12308) 2024-02-07 10:44:11 -08:00
reader_common.h Remove unnecessary, confusing 'extern' (#12300) 2024-01-29 10:38:08 -08:00
uncompression_dict_reader.cc Big refactor for preliminary custom compression API (#13540) 2025-05-15 17:14:23 -07:00
uncompression_dict_reader.h Big refactor for preliminary custom compression API (#13540) 2025-05-15 17:14:23 -07:00
user_defined_index_wrapper.h Make UDI interface consistently use the user key (#13865) 2025-08-12 15:08:02 -07:00