Actions
Bug #60694
opencrash: virtual int KernelDevice::read(uint64_t, uint64_t, ceph::bufferlist*, IOContext*, bool): assert((uint64_t)r == len)
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):
a6932eb90bf118907f1da28bf03dd237c881a1dc79a3a199b5d4e6aca33e4cf0
Crash signature (v2):
Description
Assert condition: (uint64_t)r == len
Assert function: virtual int KernelDevice::read(uint64_t, uint64_t, ceph::bufferlist*, IOContext*, bool)
Sanitized backtrace:
KernelDevice::read(unsigned long, unsigned long, ceph::buffer::list*, IOContext*, bool) BlueFS::_read(BlueFS::FileReader*, unsigned long, unsigned long, ceph::buffer::list*, char*) BlueRocksRandomAccessFile::Prefetch(unsigned long, unsigned long) rocksdb::LegacyRandomAccessFileWrapper::Prefetch(unsigned long, unsigned long, rocksdb::IOOptions const&, rocksdb::IODebugContext*) rocksdb::RandomAccessFileReader::Prefetch(unsigned long, unsigned long) const rocksdb::BlockBasedTable::PrefetchTail(rocksdb::ReadOptions const&, rocksdb::RandomAccessFileReader*, unsigned long, bool, rocksdb::TailPrefetchStats*, bool, bool, std::unique_ptr<rocksdb::FilePrefetchBuffer, std::default_delete<rocksdb::FilePrefetchBuffer> >*) rocksdb::BlockBasedTable::Open(rocksdb::ReadOptions const&, rocksdb::ImmutableCFOptions const&, rocksdb::EnvOptions const&, rocksdb::BlockBasedTableOptions const&, rocksdb::InternalKeyComparator const&, std::unique_ptr<rocksdb::RandomAccessFileReader, std::default_delete<rocksdb::RandomAccessFileReader> >&&, unsigned long, std::unique_ptr<rocksdb::TableReader, std::default_delete<rocksdb::TableReader> >*, rocksdb::SliceTransform const*, bool, bool, int, bool, unsigned long, bool, rocksdb::TailPrefetchStats*, rocksdb::BlockCacheTracer*, unsigned long) rocksdb::BlockBasedTableFactory::NewTableReader(rocksdb::ReadOptions const&, rocksdb::TableReaderOptions const&, std::unique_ptr<rocksdb::RandomAccessFileReader, std::default_delete<rocksdb::RandomAccessFileReader> >&&, unsigned long, std::unique_ptr<rocksdb::TableReader, std::default_delete<rocksdb::TableReader> >*, bool) const rocksdb::TableCache::GetTableReader(rocksdb::ReadOptions const&, rocksdb::FileOptions const&, rocksdb::InternalKeyComparator const&, rocksdb::FileDescriptor const&, bool, bool, rocksdb::HistogramImpl*, std::unique_ptr<rocksdb::TableReader, std::default_delete<rocksdb::TableReader> >*, rocksdb::SliceTransform const*, bool, int, bool, unsigned long) rocksdb::TableCache::FindTable(rocksdb::ReadOptions const&, rocksdb::FileOptions const&, rocksdb::InternalKeyComparator const&, rocksdb::FileDescriptor const&, rocksdb::Cache::Handle**, rocksdb::SliceTransform const*, bool, bool, rocksdb::HistogramImpl*, bool, int, bool, unsigned long) rocksdb::VersionBuilder::Rep::LoadTableHandlers(rocksdb::InternalStats*, int, bool, bool, rocksdb::SliceTransform const*, unsigned long)::{lambda()#1}::operator()() const void std::__invoke_impl<void, rocksdb::VersionBuilder::Rep::LoadTableHandlers(rocksdb::InternalStats*, int, bool, bool, rocksdb::SliceTransform const*, unsigned long)::{lambda()#1}&>(std::__invoke_other, rocksdb::VersionBuilder::Rep::LoadTableHandlers(rocksdb::InternalStats*, int, bool, bool, rocksdb::SliceTransform const*, unsigned long)::{lambda()#1}&) std::enable_if<std::__and_<std::is_void<void>, std::__is_invocable<rocksdb::VersionBuilder::Rep::LoadTableHandlers(rocksdb::InternalStats*, int, bool, bool, rocksdb::SliceTransform const*, unsigned long)::{lambda()#1}&> >::value, std::is_void>::type std::__invoke_r<void, rocksdb::VersionBuilder::Rep::LoadTableHandlers(rocksdb::InternalStats*, int, bool, bool, rocksdb::SliceTransform const*, unsigned long)::{lambda()#1}&>(std::__is_invocable&&, (rocksdb::VersionBuilder::Rep::LoadTableHandlers(rocksdb::InternalStats*, int, bool, bool, rocksdb::SliceTransform const*, unsigned long)::{lambda()#1}&)...)
Crash dump sample:
{ "assert_condition": "(uint64_t)r == len", "assert_file": "blk/kernel/KernelDevice.cc", "assert_func": "virtual int KernelDevice::read(uint64_t, uint64_t, ceph::bufferlist*, IOContext*, bool)", "assert_line": 1255, "assert_msg": "blk/kernel/KernelDevice.cc: In function 'virtual int KernelDevice::read(uint64_t, uint64_t, ceph::bufferlist*, IOContext*, bool)' thread 7fe624c74700 time 2023-04-01T14:26:36.261538+0200\nblk/kernel/KernelDevice.cc: 1255: FAILED ceph_assert((uint64_t)r == len)", "assert_thread_name": "ceph-osd", "backtrace": [ "/lib/x86_64-linux-gnu/libpthread.so.0(+0x13140) [0x7fe637dde140]", "gsignal()", "abort()", "(ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x17e) [0x55836a998fca]", "/usr/bin/ceph-osd(+0xc2310e) [0x55836a99910e]", "(KernelDevice::read(unsigned long, unsigned long, ceph::buffer::v15_2_0::list*, IOContext*, bool)+0x9cf) [0x55836b56d0cf]", "(BlueFS::_read(BlueFS::FileReader*, unsigned long, unsigned long, ceph::buffer::v15_2_0::list*, char*)+0x5b7) [0x55836b0bbf97]", "(BlueRocksRandomAccessFile::Prefetch(unsigned long, unsigned long)+0x1b) [0x55836b0e4b4b]", "(rocksdb::LegacyRandomAccessFileWrapper::Prefetch(unsigned long, unsigned long, rocksdb::IOOptions const&, rocksdb::IODebugContext*)+0x4d) [0x55836b5ed5e1]", "(rocksdb::RandomAccessFileReader::Prefetch(unsigned long, unsigned long) const+0x62) [0x55836b891870]", "(rocksdb::BlockBasedTable::PrefetchTail(rocksdb::ReadOptions const&, rocksdb::RandomAccessFileReader*, unsigned long, bool, rocksdb::TailPrefetchStats*, bool, bool, std::unique_ptr<rocksdb::FilePrefetchBuffer, std::default_delete<rocksdb::FilePrefetchBuffer> >*)+0x1a0) [0x55836b882a08]", "(rocksdb::BlockBasedTable::Open(rocksdb::ReadOptions const&, rocksdb::ImmutableCFOptions const&, rocksdb::EnvOptions const&, rocksdb::BlockBasedTableOptions const&, rocksdb::InternalKeyComparator const&, std::unique_ptr<rocksdb::RandomAccessFileReader, std::default_delete<rocksdb::RandomAccessFileReader> >&&, unsigned long, std::unique_ptr<rocksdb::TableReader, std::default_delete<rocksdb::TableReader> >*, rocksdb::SliceTransform const*, bool, bool, int, bool, unsigned long, bool, rocksdb::TailPrefetchStats*, rocksdb::BlockCacheTracer*, unsigned long)+0x16c) [0x55836b881eb6]", "(rocksdb::BlockBasedTableFactory::NewTableReader(rocksdb::ReadOptions const&, rocksdb::TableReaderOptions const&, std::unique_ptr<rocksdb::RandomAccessFileReader, std::default_delete<rocksdb::RandomAccessFileReader> >&&, unsigned long, std::unique_ptr<rocksdb::TableReader, std::default_delete<rocksdb::TableReader> >*, bool) const+0x10a) [0x55836b86ddde]", "(rocksdb::TableCache::GetTableReader(rocksdb::ReadOptions const&, rocksdb::FileOptions const&, rocksdb::InternalKeyComparator const&, rocksdb::FileDescriptor const&, bool, bool, rocksdb::HistogramImpl*, std::unique_ptr<rocksdb::TableReader, std::default_delete<rocksdb::TableReader> >*, rocksdb::SliceTransform const*, bool, int, bool, unsigned long)+0x598) [0x55836b750d1a]", "(rocksdb::TableCache::FindTable(rocksdb::ReadOptions const&, rocksdb::FileOptions const&, rocksdb::InternalKeyComparator const&, rocksdb::FileDescriptor const&, rocksdb::Cache::Handle**, rocksdb::SliceTransform const*, bool, bool, rocksdb::HistogramImpl*, bool, int, bool, unsigned long)+0x2e2) [0x55836b7511e6]", "(rocksdb::VersionBuilder::Rep::LoadTableHandlers(rocksdb::InternalStats*, int, bool, bool, rocksdb::SliceTransform const*, unsigned long)::{lambda()#1}::operator()() const+0x1ae) [0x55836b9da8f2]", "(void std::__invoke_impl<void, rocksdb::VersionBuilder::Rep::LoadTableHandlers(rocksdb::InternalStats*, int, bool, bool, rocksdb::SliceTransform const*, unsigned long)::{lambda()#1}&>(std::__invoke_other, rocksdb::VersionBuilder::Rep::LoadTableHandlers(rocksdb::InternalStats*, int, bool, bool, rocksdb::SliceTransform const*, unsigned long)::{lambda()#1}&)+0x20) [0x55836b9e2d81]", "(std::enable_if<std::__and_<std::is_void<void>, std::__is_invocable<rocksdb::VersionBuilder::Rep::LoadTableHandlers(rocksdb::InternalStats*, int, bool, bool, rocksdb::SliceTransform const*, unsigned long)::{lambda()#1}&> >::value, std::is_void>::type std::__invoke_r<void, rocksdb::VersionBuilder::Rep::LoadTableHandlers(rocksdb::InternalStats*, int, bool, bool, rocksdb::SliceTransform const*, unsigned long)::{lambda()#1}&>(std::__is_invocable&&, (rocksdb::VersionBuilder::Rep::LoadTableHandlers(rocksdb::InternalStats*, int, bool, bool, rocksdb::SliceTransform const*, unsigned long)::{lambda()#1}&)...)+0x20) [0x55836b9e0aab]", "(std::_Function_handler<void (), rocksdb::VersionBuilder::Rep::LoadTableHandlers(rocksdb::InternalStats*, int, bool, bool, rocksdb::SliceTransform const*, unsigned long)::{lambda()#1}>::_M_invoke(std::_Any_data const&)+0x20) [0x55836b9de51c]", "/lib/x86_64-linux-gnu/libstdc++.so.6(+0xceed0) [0x7fe637c62ed0]", "/lib/x86_64-linux-gnu/libpthread.so.0(+0x7ea7) [0x7fe637dd2ea7]", "clone()" ], "ceph_version": "17.2.5", "crash_id": "2023-04-01T12:26:36.296715Z_e51c7e4c-9fff-4bf0-8fd7-b5b216cd80b6", "entity_name": "osd.a58fa466d102b60d8f472b2995b77bf53fdc3df2", "os_id": "11", "os_name": "Debian GNU/Linux 11 (bullseye)", "os_version": "11 (bullseye)", "os_version_id": "11", "process_name": "ceph-osd", "stack_sig": "a6932eb90bf118907f1da28bf03dd237c881a1dc79a3a199b5d4e6aca33e4cf0", "timestamp": "2023-04-01T12:26:36.296715Z", "utsname_machine": "x86_64", "utsname_release": "5.15.60-2-pve", "utsname_sysname": "Linux", "utsname_version": "#1 SMP PVE 5.15.60-2 (Tue, 04 Oct 2022 16:52:28 +0200)" }
Actions