Bug #56933
crash: int64_t BlueFS::_read_random(BlueFS::FileReader*, uint64_t, uint64_t, char*): assert(r == 0)
Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
% Done:
0%
Source:
Telemetry
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
0ec6628c9da222276623f53f4d7599522dd9371db199b44e8c517d68d31c559d
Crash signature (v2):
Description
Assert condition: r == 0
Assert function: int64_t BlueFS::_read_random(BlueFS::FileReader*, uint64_t, uint64_t, char*)
Sanitized backtrace:
BlueFS::_read_random(BlueFS::FileReader*, unsigned long, unsigned long, char*) BlueRocksRandomAccessFile::Read(unsigned long, unsigned long, rocksdb::Slice*, char*) const rocksdb::LegacyRandomAccessFileWrapper::Read(unsigned long, unsigned long, rocksdb::IOOptions const&, rocksdb::Slice*, char*, rocksdb::IODebugContext*) const rocksdb::RandomAccessFileReader::Read(unsigned long, unsigned long, rocksdb::Slice*, char*, bool) const rocksdb::FilePrefetchBuffer::Prefetch(rocksdb::RandomAccessFileReader*, unsigned long, unsigned long, bool) rocksdb::FilePrefetchBuffer::TryReadFromCache(unsigned long, unsigned long, rocksdb::Slice*, bool) rocksdb::BlockFetcher::TryGetFromPrefetchBuffer() rocksdb::BlockFetcher::ReadBlockContents() rocksdb::Status rocksdb::BlockBasedTable::RetrieveBlock<rocksdb::Block>(rocksdb::FilePrefetchBuffer*, rocksdb::ReadOptions const&, rocksdb::BlockHandle const&, rocksdb::UncompressionDict const&, rocksdb::CachableEntry<rocksdb::Block>*, rocksdb::BlockType, rocksdb::GetContext*, rocksdb::BlockCacheLookupContext*, bool, bool) const rocksdb::DataBlockIter* rocksdb::BlockBasedTable::NewDataBlockIterator<rocksdb::DataBlockIter>(rocksdb::ReadOptions const&, rocksdb::BlockHandle const&, rocksdb::DataBlockIter*, rocksdb::BlockType, rocksdb::GetContext*, rocksdb::BlockCacheLookupContext*, rocksdb::Status, rocksdb::FilePrefetchBuffer*, bool) const rocksdb::BlockBasedTableIterator<rocksdb::DataBlockIter, rocksdb::Slice>::InitDataBlock() rocksdb::BlockBasedTableIterator<rocksdb::DataBlockIter, rocksdb::Slice>::FindBlockForward() rocksdb::BlockBasedTableIterator<rocksdb::DataBlockIter, rocksdb::Slice>::FindKeyForward() rocksdb::BlockBasedTableIterator<rocksdb::DataBlockIter, rocksdb::Slice>::Next() rocksdb::BlockBasedTableIterator<rocksdb::DataBlockIter, rocksdb::Slice>::NextAndGetResult(rocksdb::IterateResult*) rocksdb::IteratorWrapperBase<rocksdb::Slice>::Next() rocksdb::MergingIterator::Next() rocksdb::CompactionIterator::NextFromInput() rocksdb::CompactionIterator::Next() rocksdb::CompactionJob::ProcessKeyValueCompaction(rocksdb::CompactionJob::SubcompactionState*) rocksdb::CompactionJob::Run() rocksdb::DBImpl::BackgroundCompaction(bool*, rocksdb::JobContext*, rocksdb::LogBuffer*, rocksdb::DBImpl::PrepickedCompaction*, rocksdb::Env::Priority) rocksdb::DBImpl::BackgroundCallCompaction(rocksdb::DBImpl::PrepickedCompaction*, rocksdb::Env::Priority) rocksdb::DBImpl::BGWorkCompaction(void*) void std::__invoke_impl<void, void (*&)(void*), void*&>(std::__invoke_other, void (*&)(void*), void*&) std::__invoke_result<void (*&)(void*), void*&>::type std::__invoke<void (*&)(void*), void*&>(void (*&)(void*), void*&) void std::_Bind<void (*(void*))(void*)>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>) void std::_Bind<void (*(void*))(void*)>::operator()<, void>() std::function<void ()>::operator()() const rocksdb::ThreadPoolImpl::Impl::BGThread(unsigned long) rocksdb::ThreadPoolImpl::Impl::BGThreadWrapper(void*) void std::__invoke_impl<void, void (*)(void*), rocksdb::BGThreadMetadata*>(std::__invoke_other, void (*&&)(void*), rocksdb::BGThreadMetadata*&&) std::__invoke_result<void (*)(void*), rocksdb::BGThreadMetadata*>::type std::__invoke<void (*)(void*), rocksdb::BGThreadMetadata*>(void (*&&)(void*), rocksdb::BGThreadMetadata*&&) void std::thread::_Invoker<std::tuple<void (*)(void*), rocksdb::BGThreadMetadata*> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>) std::thread::_Invoker<std::tuple<void (*)(void*), rocksdb::BGThreadMetadata*> >::operator()()
Crash dump sample:
{ "archived": "2022-07-24 12:31:19.547976", "assert_condition": "r == 0", "assert_file": "os/bluestore/BlueFS.cc", "assert_func": "int64_t BlueFS::_read_random(BlueFS::FileReader*, uint64_t, uint64_t, char*)", "assert_line": 1922, "assert_msg": "os/bluestore/BlueFS.cc: In function 'int64_t BlueFS::_read_random(BlueFS::FileReader*, uint64_t, uint64_t, char*)' thread 7f01aafe0700 time 2022-07-24T00:50:26.589264-0400\nos/bluestore/BlueFS.cc: 1922: FAILED ceph_assert(r == 0)", "assert_thread_name": "rocksdb:low0", "backtrace": [ "/lib/x86_64-linux-gnu/libpthread.so.0(+0x143c0) [0x7f01b59cb3c0]", "gsignal()", "abort()", "(ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x1ad) [0x559e72c8dbb2]", "/usr/bin/ceph-osd(+0xaccd5f) [0x559e72c8dd5f]", "(BlueFS::_read_random(BlueFS::FileReader*, unsigned long, unsigned long, char*)+0xfeb) [0x559e73427f1b]", "(BlueRocksRandomAccessFile::Read(unsigned long, unsigned long, rocksdb::Slice*, char*) const+0x24) [0x559e7344ceb4]", "(rocksdb::LegacyRandomAccessFileWrapper::Read(unsigned long, unsigned long, rocksdb::IOOptions const&, rocksdb::Slice*, char*, rocksdb::IODebugContext*) const+0x7e) [0x559e73951eb4]", "(rocksdb::RandomAccessFileReader::Read(unsigned long, unsigned long, rocksdb::Slice*, char*, bool) const+0x8cc) [0x559e73d2ddb8]", "(rocksdb::FilePrefetchBuffer::Prefetch(rocksdb::RandomAccessFileReader*, unsigned long, unsigned long, bool)+0x429) [0x559e73d2d0dd]", "(rocksdb::FilePrefetchBuffer::TryReadFromCache(unsigned long, unsigned long, rocksdb::Slice*, bool)+0x190) [0x559e73d2d33a]", "(rocksdb::BlockFetcher::TryGetFromPrefetchBuffer()+0x84) [0x559e73c1c896]", "(rocksdb::BlockFetcher::ReadBlockContents()+0xaf) [0x559e73c1a17d]", "/usr/bin/ceph-osd(+0x1a1e904) [0x559e73bdf904]", "(rocksdb::Status rocksdb::BlockBasedTable::RetrieveBlock<rocksdb::Block>(rocksdb::FilePrefetchBuffer*, rocksdb::ReadOptions const&, rocksdb::BlockHandle const&, rocksdb::UncompressionDict const&, rocksdb::CachableEntry<rocksdb::Block>*, rocksdb::BlockType, rocksdb::GetContext*, rocksdb::BlockCacheLookupContext*, bool, bool) const+0x4e6) [0x559e73be83ec]", "(rocksdb::DataBlockIter* rocksdb::BlockBasedTable::NewDataBlockIterator<rocksdb::DataBlockIter>(rocksdb::ReadOptions const&, rocksdb::BlockHandle const&, rocksdb::DataBlockIter*, rocksdb::BlockType, rocksdb::GetContext*, rocksdb::BlockCacheLookupContext*, rocksdb::Status, rocksdb::FilePrefetchBuffer*, bool) const+0x344) [0x559e73bebab2]", "(rocksdb::BlockBasedTableIterator<rocksdb::DataBlockIter, rocksdb::Slice>::InitDataBlock()+0x487) [0x559e73c03223]", "(rocksdb::BlockBasedTableIterator<rocksdb::DataBlockIter, rocksdb::Slice>::FindBlockForward()+0x290) [0x559e73c04f1a]", "(rocksdb::BlockBasedTableIterator<rocksdb::DataBlockIter, rocksdb::Slice>::FindKeyForward()+0x94) [0x559e73c03870]", "(rocksdb::BlockBasedTableIterator<rocksdb::DataBlockIter, rocksdb::Slice>::Next()+0x8e) [0x559e73c00e56]", "(rocksdb::BlockBasedTableIterator<rocksdb::DataBlockIter, rocksdb::Slice>::NextAndGetResult(rocksdb::IterateResult*)+0x21) [0x559e73c00e89]", "(rocksdb::IteratorWrapperBase<rocksdb::Slice>::Next()+0x75) [0x559e73a29871]", "(rocksdb::MergingIterator::Next()+0xc2) [0x559e73c25c76]", "(rocksdb::CompactionIterator::NextFromInput()+0xec6) [0x559e73ce8e22]", "(rocksdb::CompactionIterator::Next()+0x252) [0x559e73ce7b8c]", "(rocksdb::CompactionJob::ProcessKeyValueCompaction(rocksdb::CompactionJob::SubcompactionState*)+0xd2e) [0x559e73cfc2ca]", "(rocksdb::CompactionJob::Run()+0x25c) [0x559e73cf9e24]", "(rocksdb::DBImpl::BackgroundCompaction(bool*, rocksdb::JobContext*, rocksdb::LogBuffer*, rocksdb::DBImpl::PrepickedCompaction*, rocksdb::Env::Priority)+0x2582) [0x559e739caa68]", "(rocksdb::DBImpl::BackgroundCallCompaction(rocksdb::DBImpl::PrepickedCompaction*, rocksdb::Env::Priority)+0x22f) [0x559e739c7c27]", "(rocksdb::DBImpl::BGWorkCompaction(void*)+0xdd) [0x559e739c6293]", "(void std::__invoke_impl<void, void (*&)(void*), void*&>(std::__invoke_other, void (*&)(void*), void*&)+0x38) [0x559e73c75d38]", "(std::__invoke_result<void (*&)(void*), void*&>::type std::__invoke<void (*&)(void*), void*&>(void (*&)(void*), void*&)+0x4a) [0x559e73c75670]", "(void std::_Bind<void (*(void*))(void*)>::__call<void, , 0ul>(std::tuple<>&&, std::_Index_tuple<0ul>)+0x5b) [0x559e73c74b7d]", "(void std::_Bind<void (*(void*))(void*)>::operator()<, void>()+0x37) [0x559e73c73a15]", "(std::_Function_handler<void (), std::_Bind<void (*(void*))(void*)> >::_M_invoke(std::_Any_data const&)+0x24) [0x559e73c72896]", "(std::function<void ()>::operator()() const+0x36) [0x559e7395db3c]", "(rocksdb::ThreadPoolImpl::Impl::BGThread(unsigned long)+0x27f) [0x559e73c6e5d5]", "(rocksdb::ThreadPoolImpl::Impl::BGThreadWrapper(void*)+0x112) [0x559e73c6e75e]", "(void std::__invoke_impl<void, void (*)(void*), rocksdb::BGThreadMetadata*>(std::__invoke_other, void (*&&)(void*), rocksdb::BGThreadMetadata*&&)+0x38) [0x559e73c769c8]", "(std::__invoke_result<void (*)(void*), rocksdb::BGThreadMetadata*>::type std::__invoke<void (*)(void*), rocksdb::BGThreadMetadata*>(void (*&&)(void*), rocksdb::BGThreadMetadata*&&)+0x4a) [0x559e73c7691a]", "(void std::thread::_Invoker<std::tuple<void (*)(void*), rocksdb::BGThreadMetadata*> >::_M_invoke<0ul, 1ul>(std::_Index_tuple<0ul, 1ul>)+0x47) [0x559e73c7686d]", "(std::thread::_Invoker<std::tuple<void (*)(void*), rocksdb::BGThreadMetadata*> >::operator()()+0x2b) [0x559e73c7680f]", "(std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (*)(void*), rocksdb::BGThreadMetadata*> > >::_M_run()+0x20) [0x559e73c767e0]", "/usr/lib/x86_64-linux-gnu/libstdc++.so.6(+0xd6de4) [0x7f01b583ede4]", "/lib/x86_64-linux-gnu/libpthread.so.0(+0x8609) [0x7f01b59bf609]", "clone()" ], "ceph_version": "16.2.9", "crash_id": "2022-07-24T04:50:26.669441Z_205c2a68-c5d1-4b9a-b95e-35748d1169be", "entity_name": "osd.796813719153b4365dc7505bcb714dd3019354fb", "os_id": "ubuntu", "os_name": "Ubuntu", "os_version": "20.04.3 LTS (Focal Fossa)", "os_version_id": "20.04", "process_name": "ceph-osd", "stack_sig": "0ec6628c9da222276623f53f4d7599522dd9371db199b44e8c517d68d31c559d", "timestamp": "2022-07-24T04:50:26.669441Z", "utsname_machine": "x86_64", "utsname_release": "5.4.0-99-generic", "utsname_sysname": "Linux", "utsname_version": "#112-Ubuntu SMP Thu Feb 3 13:50:55 UTC 2022" }