Project

General

Profile

Actions

Bug #62689

open

ceph-bluestore-tool's bluefs-bdev-expand is unable to proceed after OSD experienced ENOSPC when NCB is enabled

Added by Igor Fedotov 8 months ago. Updated 8 months ago.

Status:
New
Priority:
Normal
Assignee:
-
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

NCB allocation map destaging requires DB to be opened in R/W mode. But DB opening might be unsuccessful due to lack of free space at
underlying volume(s) as RocksDB initiates disk space consuming recovery.

1: (ceph::__ceph_abort(char const*, int, char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)
+0xdf) [0x7fc2f04a0fa4]
2: (BlueFS::_flush_range_F(BlueFS::FileWriter*, unsigned long, unsigned long)+0x8d4) [0x55c786a68d54]
3: (BlueFS::_flush_F(BlueFS::FileWriter*, bool, bool*)+0x90) [0x55c786a68e30]
4: (BlueFS::append_try_flush(BlueFS::FileWriter*, char const*, unsigned long)+0xc6) [0x55c786a7abe6]
5: (BlueRocksWritableFile::Append(rocksdb::Slice const&)+0x1b) [0x55c786c1338b]
6: bin/ceph-bluestore-tool(+0x748ea6) [0x55c786e8eea6]
7: (rocksdb::WritableFileWriter::WriteBuffered(char const*, unsigned long, rocksdb::Env::IOPriority)+0x3de) [0x55c786ec788e]
8: (rocksdb::WritableFileWriter::Append(rocksdb::Slice const&, unsigned int, rocksdb::Env::IOPriority)+0x6de) [0x55c786ecd7ae]
9: (rocksdb::BlockBasedTableBuilder::WriteMaybeCompressedBlock(rocksdb::Slice const&, rocksdb::CompressionType, rocksdb::BlockHandle*, rocksd
b::BlockType, rocksdb::Slice const*)+0x1e5) [0x55c7870f85f5]
10: (rocksdb::BlockBasedTableBuilder::WriteBlock(rocksdb::Slice const&, rocksdb::BlockHandle*, rocksdb::BlockType)+0xf8) [0x55c7870f8cd8]
11: (rocksdb::BlockBasedTableBuilder::WriteBlock(rocksdb::BlockBuilder*, rocksdb::BlockHandle*, rocksdb::BlockType)+0x8f) [0x55c7870fa24f]
12: (rocksdb::BlockBasedTableBuilder::Add(rocksdb::Slice const&, rocksdb::Slice const&)+0x2a7) [0x55c7870fcc67]
13: (rocksdb::BuildTable(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, rocksdb::VersionSet*, rocksdb::ImmutableDBOptions const&, rocksdb::TableBuilderOptions const&, rocksdb::FileOptions 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*, std::vector<rocksdb::BlobFileAddition, std::allocator<rocksdb::BlobFileAddition> >, std::vector<unsigned long, std::allocator<unsigned long> >, unsigned long, unsigned long, rocksdb::SnapshotChecker, bool, rocksdb::InternalStats*, rocksdb::IOStatus*, std::shared_ptr<rocksdb::IOTracer> const&, rocksdb::BlobFileCreationReason, rocksdb::SeqnoToTimeMapping const&, rocksdb::EventLogger*, int, rocksdb::Env::IOPriority, rocksdb::TableProperties*, rocksdb::Env::WriteLifeTimeHint, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const*, rocksdb::BlobFileCompletionCallback*, unsigned long*, unsigned long*, unsigned long*)+0xe90) [0x55c787047f60]
14: (rocksdb::DBImpl::WriteLevel0TableForRecovery(int, rocksdb::ColumnFamilyData*, rocksdb::MemTable*, rocksdb::VersionEdit*)+0x10e6) [0x55c786d64136]
15: (rocksdb::DBImpl::RecoverLogFiles(std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long*, bool, bool*, rocksdb::DBImpl::RecoveryContext*)+0x1d15) [0x55c786d66eb5]
16: (rocksdb::DBImpl::Recover(std::vector<rocksdb::ColumnFamilyDescriptor, std::allocator<rocksdb::ColumnFamilyDescriptor> > const&, bool, bool, bool, unsigned long*, rocksdb::DBImpl::RecoveryContext*)+0x1930) [0x55c786d692b0]
17: (rocksdb::DBImpl::Open(rocksdb::DBOptions const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<rocksdb::ColumnFamilyDescriptor, std::allocator<rocksdb::ColumnFamilyDescriptor> > const&, std::vector<rocksdb::ColumnFamilyHandle*, std::allocator<rocksdb::ColumnFamilyHandle*> >, rocksdb::DB*, bool, bool)+0x7e5) [0x55c786d5f305]
18: (rocksdb::DB::Open(rocksdb::DBOptions const&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, std::vector<rocksdb::ColumnFamilyDescriptor, std::allocator<rocksdb::ColumnFamilyDescriptor> > const&, std::vector<rocksdb::ColumnFamilyHandle*, std::allocator<rocksdb::ColumnFamilyHandle*> >, rocksdb::DB*)+0x15) [0x55c786d61a15]
19: (RocksDBStore::do_open(std::ostream&, bool, bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)+0x7dd) [0x55c786ca5c0d]
20: (BlueStore::_open_db(bool, bool, bool)+0x80d) [0x55c786b114dd]
21: (BlueStore::_open_db_and_around(bool, bool)+0x4b5) [0x55c786b5c3d5]
22: (BlueStore::_mount()+0x393) [0x55c786b5f0b3]
23: (BlueStore::expand_devices(std::ostream&)+0x41d) [0x55c786b5f96d]
Actions #1

Updated by Igor Fedotov 8 months ago

  • Subject changed from ceph-bluestore-tool's bluefs-bdev-expand is unable to proceed when NCB is enabled to ceph-bluestore-tool's bluefs-bdev-expand is unable to proceed after OSD experienced ENOSPC when NCB is enabled
Actions

Also available in: Atom PDF