Project

General

Profile

Actions

Bug #52208

open

crash: virtual int KernelDevice::read(uint64_t, uint64_t, ceph::bufferlist*, IOContext*, bool): assert((uint64_t)r == len)

Added by Telemetry Bot over 2 years ago. Updated about 2 years ago.

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


Description

http://telemetry.front.sepia.ceph.com:4000/d/jByk5HaMz/crash-spec-x-ray?orgId=1&var-sig_v2=631597e39468c016bebd48f64ca997292ea95eb1acb2175ba242b6cacd2e5382

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" 
}

Actions #1

Updated by Telemetry Bot over 2 years ago

  • Crash signature (v1) updated (diff)
  • Crash signature (v2) updated (diff)
  • Affected Versions v15.2.13 added
Actions #2

Updated by Telemetry Bot about 2 years ago

  • Crash signature (v1) updated (diff)
  • Affected Versions v15.2.15 added
Actions #3

Updated by Telemetry Bot about 2 years ago

  • Crash signature (v1) updated (diff)
  • Crash signature (v2) updated (diff)
Actions #4

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

Also available in: Atom PDF