RHCS 4 - ceph-osd assert with "/builddir/build/BUILD/ceph-14.2.22/src/os/bluestore/KernelDevice.cc: 1106: FAILED ceph_assert(off < size)"

Solution Unverified - Updated -

Issue

Ceph OSDs randomly crashing with " FAILED ceph_assert(off < size)":

    -4> 2023-05-10 13:25:41.295 7fd3d62f3700  4 rocksdb: EVENT_LOG_v1 {"time_micros": 1683717941295291, "job": 7650, "event": "flush_started", "num_memtables": 1, "num_entries": 626917, "num_deletes": 120854, "total_data_size": 248345821, "memory_usage": 260050304, "flush_reason": "Write Buffer Full"}
    -3> 2023-05-10 13:25:41.295 7fd3d62f3700  4 rocksdb: [db/flush_job.cc:351] [default] [JOB 7650] Level-0 flush table #121512: started
    -2> 2023-05-10 13:25:41.636 7fd3d42ef700  5 prioritycache tune_memory target: 4294967296 mapped: 4324048896 unmapped: 1059995648 heap: 5384044544 old mem: 2620462370 new mem: 2603741011
    -1> 2023-05-10 13:25:41.676 7fd3d62f3700 -1 /builddir/build/BUILD/ceph-14.2.22/src/os/bluestore/KernelDevice.cc: In function 'virtual int KernelDevice::read_random(uint64_t, uint64_t, char*, bool)' thread 7fd3d62f3700 time 2023-05-10 13:25:41.647570
/builddir/build/BUILD/ceph-14.2.22/src/os/bluestore/KernelDevice.cc: 1106: FAILED ceph_assert(off < size)

 ceph version 14.2.22-128.el7cp (40a2bf9c4e79e39754d69a95cd51bd60991284be) nautilus (stable)
 1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x14a) [0x55bb29655675]
 2: (()+0x4dd83d) [0x55bb2965583d]
 3: (KernelDevice::read_random(unsigned long, unsigned long, char*, bool)+0xeea) [0x55bb29cc20aa]
 4: (BlueFS::_read_random(BlueFS::FileReader*, unsigned long, unsigned long, char*)+0x56e) [0x55bb29c6b47e]
 5: (BlueRocksRandomAccessFile::Read(unsigned long, unsigned long, rocksdb::Slice*, char*) const+0x20) [0x55bb29c98cc0]
 6: (rocksdb::RandomAccessFileReader::Read(unsigned long, unsigned long, rocksdb::Slice*, char*) const+0x836) [0x55bb2a27ef06]
 7: (rocksdb::BlockFetcher::ReadBlockContents()+0x519) [0x55bb2a247b19]
 8: (rocksdb::BlockBasedTable::ReadCompressionDictBlock(rocksdb::BlockBasedTable::Rep*, rocksdb::FilePrefetchBuffer*, std::unique_ptr<rocksdb::BlockContents const, std::default_delete<rocksdb::BlockContents const> >*)+0x2b7) [0x55bb2a234387]
 9: (rocksdb::BlockBasedTable::GetUncompressionDict(rocksdb::BlockBasedTable::Rep*, rocksdb::FilePrefetchBuffer*, bool, rocksdb::GetContext*)+0x175) [0x55bb2a237bb5]
 10: (rocksdb::DataBlockIter* rocksdb::BlockBasedTable::NewDataBlockIterator<rocksdb::DataBlockIter>(rocksdb::BlockBasedTable::Rep*, rocksdb::ReadOptions const&, rocksdb::BlockHandle const&, rocksdb::DataBlockIter*, bool, bool, bool, rocksdb::GetContext*, rocksdb::Status, rocksdb::FilePrefetchBuffer*)+0x154) [0x55bb2a243e04]
 11: (rocksdb::BlockBasedTable::ReadRangeDelBlock(rocksdb::BlockBasedTable::Rep*, rocksdb::FilePrefetchBuffer*, rocksdb::InternalIteratorBase<rocksdb::Slice>*, rocksdb::InternalKeyComparator const&)+0x16d) [0x55bb2a237fed]
 12: (rocksdb::BlockBasedTable::Open(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, rocksdb::TailPrefetchStats*)+0x966) [0x55bb2a239c46]
 13: (rocksdb::BlockBasedTableFactory::NewTableReader(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+0x60) [0x55bb2a22d0f0]
 14: (rocksdb::TableCache::GetTableReader(rocksdb::EnvOptions const&, rocksdb::InternalKeyComparator const&, rocksdb::FileDescriptor const&, bool, unsigned long, bool, rocksdb::HistogramImpl*, std::unique_ptr<rocksdb::TableReader, std::default_delete<rocksdb::TableReader> >*, rocksdb::SliceTransform const*, bool, int, bool, bool)+0x499) [0x55bb2a1bb2f9]
 15: (rocksdb::TableCache::FindTable(rocksdb::EnvOptions const&, rocksdb::InternalKeyComparator const&, rocksdb::FileDescriptor const&, rocksdb::Cache::Handle**, rocksdb::SliceTransform const*, bool, bool, rocksdb::HistogramImpl*, bool, int, bool)+0x306) [0x55bb2a1bbb96]
 16: (rocksdb::TableCache::NewIterator(rocksdb::ReadOptions const&, rocksdb::EnvOptions const&, rocksdb::InternalKeyComparator const&, rocksdb::FileMetaData const&, rocksdb::RangeDelAggregator*, rocksdb::SliceTransform const*, rocksdb::TableReader**, rocksdb::HistogramImpl*, bool, rocksdb::Arena*, bool, int, rocksdb::InternalKey const*, rocksdb::InternalKey const*)+0x414) [0x55bb2a1bcdb4]
 17: (rocksdb::BuildTable(std::string const&, rocksdb::Env*, rocksdb::ImmutableCFOptions const&, rocksdb::MutableCFOptions const&, rocksdb::EnvOptions const&, rocksdb::TableCache*, rocksdb::InternalIteratorBase<rocksdb::Slice>*, std::vector<std::unique_ptr<rocksdb::FragmentedRangeTombstoneIterator, std::default_delete<rocksdb::FragmentedRangeTombstoneIterator> >, std::allocator<std::unique_ptr<rocksdb::FragmentedRangeTombstoneIterator, std::default_delete<rocksdb::FragmentedRangeTombstoneIterator> > > >, rocksdb::FileMetaData*, rocksdb::InternalKeyComparator const&, std::vector<std::unique_ptr<rocksdb::IntTblPropCollectorFactory, std::default_delete<rocksdb::IntTblPropCollectorFactory> >, std::allocator<std::unique_ptr<rocksdb::IntTblPropCollectorFactory, std::default_delete<rocksdb::IntTblPropCollectorFactory> > > > const*, unsigned int, std::string const&, std::vector<unsigned long, std::allocator<unsigned long> >, unsigned long, rocksdb::SnapshotChecker*, rocksdb::CompressionType, unsigned long, rocksdb::CompressionOptions const&, bool, rocksdb::InternalStats*, rocksdb::TableFileCreationReason, rocksdb::EventLogger*, int, rocksdb::Env::IOPriority, rocksdb::TableProperties*, int, unsigned long, unsigned long, rocksdb::Env::WriteLifeTimeHint)+0x25b2) [0x55bb2a2ac662]
 18: (rocksdb::FlushJob::WriteLevel0Table()+0xf01) [0x55bb2a17b2a1]
 19: (rocksdb::FlushJob::Run(rocksdb::LogsWithPrepTracker*, rocksdb::FileMetaData*)+0xd9) [0x55bb2a17d1c9]
 20: (rocksdb::DBImpl::FlushMemTableToOutputFile(rocksdb::ColumnFamilyData*, rocksdb::MutableCFOptions const&, bool*, rocksdb::JobContext*, rocksdb::SuperVersionContext*, std::vector<unsigned long, std::allocator<unsigned long> >&, unsigned long, rocksdb::SnapshotChecker*, rocksdb::LogBuffer*, rocksdb::Env::Priority)+0x304) [0x55bb2a12e004]
 21: (rocksdb::DBImpl::FlushMemTablesToOutputFiles(rocksdb::autovector<rocksdb::DBImpl::BGFlushArg, 8ul> const&, bool*, rocksdb::JobContext*, rocksdb::LogBuffer*, rocksdb::Env::Priority)+0x20a) [0x55bb2a135b3a]
 22: (rocksdb::DBImpl::BackgroundFlush(bool*, rocksdb::JobContext*, rocksdb::LogBuffer*, rocksdb::FlushReason*, rocksdb::Env::Priority)+0xc4f) [0x55bb2a13694f]
 23: (rocksdb::DBImpl::BackgroundCallFlush(rocksdb::Env::Priority)+0xc7) [0x55bb2a137f57]
 24: (rocksdb::ThreadPoolImpl::Impl::BGThread(unsigned long)+0x25a) [0x55bb2a306e6a]
 25: (rocksdb::ThreadPoolImpl::Impl::BGThreadWrapper(void*)+0x5d) [0x55bb2a306ffd]
 26: (()+0x1214e9f) [0x55bb2a38ce9f]
 27: (()+0x7ea5) [0x7fd3e8493ea5]
 28: (clone()+0x6d) [0x7fd3e7356b0d]

Environment

Red Hat Ceph Storage 4.3z1 - 14.2.22-128

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content