Actions
Bug #52208
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):
265b2e63fb7480703903010cf4cbf3a4447b93d837476f6ea54b237ed8274c68
631597e39468c016bebd48f64ca997292ea95eb1acb2175ba242b6cacd2e5382
ef28489a7af1a19deab641ba8af7ee88d5ef8df29e7ee15d25414f131baea388
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::v15_2_0::list*, IOContext*, bool) BlueFS::_read(BlueFS::FileReader*, BlueFS::FileReaderBuffer*, unsigned long, unsigned long, ceph::buffer::v15_2_0::list*, char*) BlueRocksRandomAccessFile::Prefetch(unsigned long, unsigned long) rocksdb::RandomAccessFileReader::Prefetch(unsigned long, unsigned long) const rocksdb::BlockBasedTableIterator<rocksdb::DataBlockIter, rocksdb::Slice>::InitDataBlock() rocksdb::BlockBasedTableIterator<rocksdb::DataBlockIter, rocksdb::Slice>::FindKeyForward() rocksdb::BlockBasedTableIterator<rocksdb::DataBlockIter, rocksdb::Slice>::Next() rocksdb::IteratorWrapperBase<rocksdb::Slice>::Next() rocksdb::IteratorWrapperBase<rocksdb::Slice>::Next() rocksdb::MergingIterator::Next() rocksdb::DBIter::Next() rocksdb::ArenaWrappedDBIter::Next() RocksDBStore::RocksDBWholeSpaceIteratorImpl::next() BlueStore::_collection_list(BlueStore::Collection*, ghobject_t const&, ghobject_t const&, int, bool, std::vector<ghobject_t, std::allocator<ghobject_t> >*, ghobject_t*) BlueStore::collection_list(boost::intrusive_ptr<ObjectStore::CollectionImpl>&, ghobject_t const&, ghobject_t const&, int, std::vector<ghobject_t, std::allocator<ghobject_t> >*, ghobject_t*) PGBackend::objects_list_range(hobject_t const&, hobject_t const&, std::vector<hobject_t, std::allocator<hobject_t> >*, std::vector<ghobject_t, std::allocator<ghobject_t> >*) PG::build_scrub_map_chunk(ScrubMap&, ScrubMapBuilder&, hobject_t, hobject_t, bool, ThreadPool::TPHandle&) PG::chunky_scrub(ThreadPool::TPHandle&) PG::scrub(unsigned int, ThreadPool::TPHandle&) ceph::osd::scheduler::PGScrub::run(OSD*, OSDShard*, boost::intrusive_ptr<PG>&, ThreadPool::TPHandle&) OSD::ShardedOpWQ::_process(unsigned int, ceph::heartbeat_handle_d*) ShardedThreadPool::shardedthreadpool_worker(unsigned int) ShardedThreadPool::WorkThreadSharded::entry() clone()
Crash dump sample:
{ "archived": "2021-06-05 03:07:33.190806", "assert_condition": "(uint64_t)r == len", "assert_file": "os/bluestore/KernelDevice.cc", "assert_func": "virtual int KernelDevice::read(uint64_t, uint64_t, ceph::bufferlist*, IOContext*, bool)", "assert_line": 1039, "assert_msg": "os/bluestore/KernelDevice.cc: In function 'virtual int KernelDevice::read(uint64_t, uint64_t, ceph::bufferlist*, IOContext*, bool)' thread 7f45842a4700 time 2021-06-04T20:06:12.168872-0400\nos/bluestore/KernelDevice.cc: 1039: FAILED ceph_assert((uint64_t)r == len)", "assert_thread_name": "tp_osd_tp", "backtrace": [ "(()+0x153c0) [0x7f459ec6c3c0]", "(gsignal()+0xcb) [0x7f459e6f118b]", "(abort()+0x12b) [0x7f459e6d0859]", "(ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x1b0) [0x562a8aec98b6]", "(()+0x9e8a63) [0x562a8aec9a63]", "(KernelDevice::read(unsigned long, unsigned long, ceph::buffer::v15_2_0::list*, IOContext*, bool)+0x80d) [0x562a8b62a80d]", "(BlueFS::_read(BlueFS::FileReader*, BlueFS::FileReaderBuffer*, unsigned long, unsigned long, ceph::buffer::v15_2_0::list*, char*)+0x591) [0x562a8b5d51e1]", "(BlueRocksRandomAccessFile::Prefetch(unsigned long, unsigned long)+0x2f) [0x562a8b602d9f]", "(rocksdb::RandomAccessFileReader::Prefetch(unsigned long, unsigned long) const+0x53) [0x562a8bcf54ed]", "(rocksdb::BlockBasedTableIterator<rocksdb::DataBlockIter, rocksdb::Slice>::InitDataBlock()+0x20c) [0x562a8bd037e2]", "(rocksdb::BlockBasedTableIterator<rocksdb::DataBlockIter, rocksdb::Slice>::FindKeyForward()+0x119) [0x562a8bd03b35]", "(rocksdb::BlockBasedTableIterator<rocksdb::DataBlockIter, rocksdb::Slice>::Next()+0x5c) [0x562a8bd0254a]", "(rocksdb::IteratorWrapperBase<rocksdb::Slice>::Next()+0x58) [0x562a8bc355fa]", "(()+0x1731ec1) [0x562a8bc12ec1]", "(rocksdb::IteratorWrapperBase<rocksdb::Slice>::Next()+0x58) [0x562a8bc355fa]", "(rocksdb::MergingIterator::Next()+0xfd) [0x562a8bd153bb]", "(rocksdb::DBIter::Next()+0x1a6) [0x562a8bb70a24]", "(rocksdb::ArenaWrappedDBIter::Next()+0x20) [0x562a8bb7a2d6]", "(RocksDBStore::RocksDBWholeSpaceIteratorImpl::next()+0x32) [0x562a8ba6f8d2]", "(()+0xfa373e) [0x562a8b48473e]", "(BlueStore::_collection_list(BlueStore::Collection*, ghobject_t const&, ghobject_t const&, int, bool, std::vector<ghobject_t, std::allocator<ghobject_t> >*, ghobject_t*)+0x1fb8) [0x562a8b4b58a8]", "(BlueStore::collection_list(boost::intrusive_ptr<ObjectStore::CollectionImpl>&, ghobject_t const&, ghobject_t const&, int, std::vector<ghobject_t, std::allocator<ghobject_t> >*, ghobject_t*)+0xbf) [0x562a8b4b6d6f]", "(PGBackend::objects_list_range(hobject_t const&, hobject_t const&, std::vector<hobject_t, std::allocator<hobject_t> >*, std::vector<ghobject_t, std::allocator<ghobject_t> >*)+0x450) [0x562a8b18b470]", "(PG::build_scrub_map_chunk(ScrubMap&, ScrubMapBuilder&, hobject_t, hobject_t, bool, ThreadPool::TPHandle&)+0x5d6) [0x562a8b053cb6]", "(PG::chunky_scrub(ThreadPool::TPHandle&)+0x14e8) [0x562a8b057688]", "(PG::scrub(unsigned int, ThreadPool::TPHandle&)+0x31b) [0x562a8b0596db]", "(ceph::osd::scheduler::PGScrub::run(OSD*, OSDShard*, boost::intrusive_ptr<PG>&, ThreadPool::TPHandle&)+0x1e) [0x562a8b227a4e]", "(OSD::ShardedOpWQ::_process(unsigned int, ceph::heartbeat_handle_d*)+0xe8d) [0x562a8afa7e6d]", "(ShardedThreadPool::shardedthreadpool_worker(unsigned int)+0x403) [0x562a8b68d9b3]", "(ShardedThreadPool::WorkThreadSharded::entry()+0x14) [0x562a8b6907b4]", "(()+0x9609) [0x7f459ec60609]", "(clone()+0x43) [0x7f459e7cd293]" ], "ceph_version": "15.2.13", "crash_id": "2021-06-05T00:06:12.220671Z_7ddb9f9a-fa8c-489b-88cf-45c98ea20ad0", "entity_name": "osd.df736bec59da90e48cf448763a3970cbbca08cc0", "os_id": "ubuntu", "os_name": "Ubuntu", "os_version": "20.04.2 LTS (Focal Fossa)", "os_version_id": "20.04", "process_name": "ceph-osd", "stack_sig": "ef28489a7af1a19deab641ba8af7ee88d5ef8df29e7ee15d25414f131baea388", "timestamp": "2021-06-05T00:06:12.220671Z", "utsname_machine": "x86_64", "utsname_release": "5.4.0-73-generic", "utsname_sysname": "Linux", "utsname_version": "#82-Ubuntu SMP Wed Apr 14 17:39:42 UTC 2021" }
Updated by Telemetry Bot over 2 years ago
Updated by Telemetry Bot about 2 years ago
- Crash signature (v1) updated (diff)
- Affected Versions v15.2.15 added
Updated by Telemetry Bot about 2 years ago
Updated by jing zhang about 2 years ago
hi experts, are there some updates for this issue?
I meet the same issue from the func
In function 'virtual int KernelDevice::read(uint64_t, uint64_t, ceph::bufferlist*, IOContext*, bool)' thread
7fad822f6080 time 2022-03-16T03:34:15.309430+0000
/blk/ke
rnel/KernelDevice.cc: 1066: FAILED ceph_assert((uint64_t)r == len)
here is the stack
ceph version 16.2.6 (ee28fb57e47e9f88813e24bbf4c14496ca299d31) pacific (stable)
1: /lib64/libpthread.so.0(+0x12b20) [0x7fad8029cb20]
2: gsignal()
3: abort()
4: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x1a9) [0x55b90806259d]
5: ceph-osd(+0x56a766) [0x55b908062766]
6: (KernelDevice::read(unsigned long, unsigned long, ceph::buffer::v15_2_0::list*, IOContext*, bool)+0x8a1) [0x55b908bac3a1]
7: (BlueFS::_read(BlueFS::FileReader*, unsigned long, unsigned long, ceph::buffer::v15_2_0::list*, char*)+0x79c) [0x55b90875494c]
8: (BlueRocksSequentialFile::Read(unsigned long, rocksdb::Slice*, char*)+0x2e) [0x55b908782b7e]
9: (rocksdb::LegacySequentialFileWrapper::Read(unsigned long, rocksdb::IOOptions const&, rocksdb::Slice*, char*, rocksdb::IODebugContext*)+0x25) [0x55b908c15705]
10: (rocksdb::SequentialFileReader::Read(unsigned long, rocksdb::Slice*, char*)+0x77) [0x55b908d23a77]
11: (rocksdb::log::Reader::ReadMore(unsigned long*, int*)+0xae) [0x55b908ca694e]
12: (rocksdb::log::Reader::ReadPhysicalRecord(rocksdb::Slice*, unsigned long*)+0x66) [0x55b908ca6a36]
13: (rocksdb::log::Reader::ReadRecord(rocksdb::Slice*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >*, rocksdb::WALRecoveryMode)+0xb5) [0x55b908ca6c55]
14: (rocksdb::DBImpl::RecoverLogFiles(std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long*, bool, bool*)+0x1250) [0x55b908c5a170]
15: (rocksdb::DBImpl::Recover(std::vector<rocksdb::ColumnFamilyDescriptor, std::allocator<rocksdb::ColumnFamilyDescriptor> > const&, bool, bool, bool, unsigned long*)+0xae8) [0x55b908c5bea8
]
16: (rocksdb::DB::OpenForReadOnly(rocksdb::DBOptions const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<rocksdb::ColumnFamilyDescrip
tor, std::allocator<rocksdb::ColumnFamilyDescriptor> > const&, std::vector<rocksdb::ColumnFamilyHandle*, std::allocator<rocksdb::ColumnFamilyHandle*> >*, rocksdb::DB**, bool)+0x1a0) [0x55b90
8c66e30]
17: (RocksDBStore::do_open(std::ostream&, bool, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+0xb98) [0x55b908bce998]
18: (BlueStore::_open_db(bool, bool, bool)+0x214) [0x55b908653da4]
19: (BlueStore::_open_db_and_around(bool, bool)+0x273) [0x55b9086be5d3]
20: (BlueStore::_mount()+0x204) [0x55b9086c1514]
21: (OSD::init()+0x380) [0x55b908196a10]
22: main()
23: __libc_start_main()
24: _start()
Actions