Bug #56308
crash: int64_t BlueFS::_read(BlueFS::FileReader*, uint64_t, size_t, ceph::bufferlist*, 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):
6905017f75dcab5552bd4447c0d28235284074d9699dfd09461d7a55d20cabd7
Crash signature (v2):
Description
Assert condition: r == 0
Assert function: int64_t BlueFS::_read(BlueFS::FileReader*, uint64_t, size_t, ceph::bufferlist*, char*)
Sanitized backtrace:
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::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::IteratorWrapperBase<rocksdb::Slice>::Next() rocksdb::MergingIterator::Next() rocksdb::MergingIterator::NextAndGetResult(rocksdb::IterateResult*) rocksdb::IteratorWrapperBase<rocksdb::Slice>::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> >*) PgScrubber::build_scrub_map_chunk(ScrubMap&, ScrubMapBuilder&, hobject_t, hobject_t, bool) PgScrubber::build_replica_map_chunk() Scrub::ActiveReplica::react(Scrub::SchedReplica const&) boost::statechart::simple_state<Scrub::ActiveReplica, Scrub::ScrubMachine, boost::mpl::list<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, (boost::statechart::history_mode)>::react_impl(boost::statechart::event_base const&, void const*) boost::statechart::state_machine<Scrub::ScrubMachine, Scrub::NotActive, std::allocator<boost::statechart::none>, boost::statechart::null_exception_translator>::process_queued_events() boost::statechart::state_machine<Scrub::ScrubMachine, Scrub::NotActive, std::allocator<boost::statechart::none>, boost::statechart::null_exception_translator>::process_event(boost::statechart::event_base const&) PgScrubber::send_start_replica(unsigned int, unsigned int) PG::forward_scrub_event(void (ScrubPgIF::*)(unsigned int, unsigned int), unsigned int, unsigned int, std::basic_string_view<char, std::char_traits<char> >) PG::replica_scrub(unsigned int, unsigned int, ThreadPool::TPHandle&) ceph::osd::scheduler::PGRepScrub::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()
Crash dump sample:
{ "assert_condition": "r == 0", "assert_file": "os/bluestore/BlueFS.cc", "assert_func": "int64_t BlueFS::_read(BlueFS::FileReader*, uint64_t, size_t, ceph::bufferlist*, char*)", "assert_line": 2044, "assert_msg": "os/bluestore/BlueFS.cc: In function 'int64_t BlueFS::_read(BlueFS::FileReader*, uint64_t, size_t, ceph::bufferlist*, char*)' thread 7f4012861700 time 2022-05-26T03:50:06.390795+0200\nos/bluestore/BlueFS.cc: 2044: FAILED ceph_assert(r == 0)", "assert_thread_name": "tp_osd_tp", "backtrace": [ "/lib/x86_64-linux-gnu/libpthread.so.0(+0x12730) [0x7f402e5e8730]", "gsignal()", "abort()", "(ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x19c) [0x558b281ee95f]", "/usr/bin/ceph-osd(+0xaa2ae6) [0x558b281eeae6]", "(BlueFS::_read(BlueFS::FileReader*, unsigned long, unsigned long, ceph::buffer::v15_2_0::list*, char*)+0x553) [0x558b28866653]", "(BlueRocksRandomAccessFile::Prefetch(unsigned long, unsigned long)+0x1a) [0x558b288937ba]", "(rocksdb::LegacyRandomAccessFileWrapper::Prefetch(unsigned long, unsigned long, rocksdb::IOOptions const&, rocksdb::IODebugContext*)+0x4d) [0x558b28d0d259]", "(rocksdb::RandomAccessFileReader::Prefetch(unsigned long, unsigned long) const+0x5d) [0x558b28f4cb35]", "(rocksdb::BlockBasedTableIterator<rocksdb::DataBlockIter, rocksdb::Slice>::InitDataBlock()+0x24e) [0x558b28f69940]", "(rocksdb::BlockBasedTableIterator<rocksdb::DataBlockIter, rocksdb::Slice>::FindBlockForward()+0x2c3) [0x558b28f6b6ef]", "(rocksdb::BlockBasedTableIterator<rocksdb::DataBlockIter, rocksdb::Slice>::FindKeyForward()+0x90) [0x558b28f6a142]", "(rocksdb::BlockBasedTableIterator<rocksdb::DataBlockIter, rocksdb::Slice>::Next()+0x8a) [0x558b28f67a2e]", "(rocksdb::BlockBasedTableIterator<rocksdb::DataBlockIter, rocksdb::Slice>::NextAndGetResult(rocksdb::IterateResult*)+0x1d) [0x558b28f67a5d]", "(rocksdb::IteratorWrapperBase<rocksdb::Slice>::Next()+0x62) [0x558b28dc585e]", "/usr/bin/ceph-osd(+0x170c5ef) [0x558b28e585ef]", "/usr/bin/ceph-osd(+0x170d005) [0x558b28e59005]", "(rocksdb::IteratorWrapperBase<rocksdb::Slice>::Next()+0x62) [0x558b28dc585e]", "(rocksdb::MergingIterator::Next()+0xaf) [0x558b28f89277]", "(rocksdb::MergingIterator::NextAndGetResult(rocksdb::IterateResult*)+0x28) [0x558b28f893b6]", "(rocksdb::IteratorWrapperBase<rocksdb::Slice>::Next()+0x62) [0x558b28dc585e]", "(rocksdb::DBIter::Next()+0x1dc) [0x558b28dbd484]", "(rocksdb::ArenaWrappedDBIter::Next()+0x1c) [0x558b29018e86]", "(RocksDBStore::RocksDBWholeSpaceIteratorImpl::next()+0x2d) [0x558b28caae0d]", "/usr/bin/ceph-osd(+0xffce38) [0x558b28748e38]", "(BlueStore::_collection_list(BlueStore::Collection*, ghobject_t const&, ghobject_t const&, int, bool, std::vector<ghobject_t, std::allocator<ghobject_t> >*, ghobject_t*)+0xe99) [0x558b28780609]", "(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*)+0x2ad) [0x558b287818dd]", "(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> >*)+0x41e) [0x558b2846f17e]", "(PgScrubber::build_scrub_map_chunk(ScrubMap&, ScrubMapBuilder&, hobject_t, hobject_t, bool)+0x48c) [0x558b285ee7ec]", "(PgScrubber::build_replica_map_chunk()+0x1e3) [0x558b285f7143]", "(Scrub::ActiveReplica::react(Scrub::SchedReplica const&)+0x92) [0x558b28606522]", "(boost::statechart::simple_state<Scrub::ActiveReplica, Scrub::ScrubMachine, boost::mpl::list<mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na, mpl_::na>, (boost::statechart::history_mode)0>::react_impl(boost::statechart::event_base const&, void const*)+0x99) [0x558b28609e09]", "(boost::statechart::state_machine<Scrub::ScrubMachine, Scrub::NotActive, std::allocator<boost::statechart::none>, boost::statechart::null_exception_translator>::process_queued_events()+0xb4) [0x558b285fe0d4]", "(boost::statechart::state_machine<Scrub::ScrubMachine, Scrub::NotActive, std::allocator<boost::statechart::none>, boost::statechart::null_exception_translator>::process_event(boost::statechart::event_base const&)+0x89) [0x558b285fe339]", "(PgScrubber::send_start_replica(unsigned int, unsigned int)+0x422) [0x558b285f7e12]", "(PG::forward_scrub_event(void (ScrubPgIF::*)(unsigned int, unsigned int), unsigned int, unsigned int, std::basic_string_view<char, std::char_traits<char> >)+0x96) [0x558b2835d2c6]", "(PG::replica_scrub(unsigned int, unsigned int, ThreadPool::TPHandle&)+0x147) [0x558b2835d7f7]", "(ceph::osd::scheduler::PGRepScrub::run(OSD*, OSDShard*, boost::intrusive_ptr<PG>&, ThreadPool::TPHandle&)+0x1d) [0x558b284f99fd]", "(OSD::ShardedOpWQ::_process(unsigned int, ceph::heartbeat_handle_d*)+0xca6) [0x558b282cbf06]", "(ShardedThreadPool::shardedthreadpool_worker(unsigned int)+0x5b4) [0x558b28904914]", "(ShardedThreadPool::WorkThreadSharded::entry()+0x10) [0x558b28907600]", "/lib/x86_64-linux-gnu/libpthread.so.0(+0x7fa3) [0x7f402e5ddfa3]", "clone()" ], "ceph_version": "16.2.9", "crash_id": "2022-05-26T01:50:06.457855Z_2a72ee2a-03ee-422b-8d1d-a0ddded27947", "entity_name": "osd.92b581e6cea6e7f836cceafacd8a895cf3a3b09a", "os_id": "10", "os_name": "Debian GNU/Linux 10 (buster)", "os_version": "10 (buster)", "os_version_id": "10", "process_name": "ceph-osd", "stack_sig": "6905017f75dcab5552bd4447c0d28235284074d9699dfd09461d7a55d20cabd7", "timestamp": "2022-05-26T01:50:06.457855Z", "utsname_machine": "x86_64", "utsname_release": "4.19.0-18-amd64", "utsname_sysname": "Linux", "utsname_version": "#1 SMP Debian 4.19.208-1 (2021-09-29)" }