Project

General

Profile

Bug #20660

FAILED assert(num_reserved >= 0) (src/os/bluestore/StupidAllocator.cc: 199)

Added by shangzhong zhu about 1 month ago. Updated 24 days ago.

Status:
Resolved
Priority:
Normal
Category:
-
Target version:
-
Start date:
07/18/2017
Due date:
% Done:

0%

Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
rados
Release:
master
Needs Doc:
No

Description

2017-07-17 17:11:51.325585 7f8f92e7db80 10 bluefs _read h 0x7f8f9e2dd580 0x6bf8000~8000 from file(ino 30 size 0x6bf8ed4 mtime 2017-07-15 13:54:50.044344 bdev 0 extents [0:0x2600000+400000,0:0x2e00000+100000,0:0x3700000+100000,0:0x4400000+100000,0:0x4d00000+100000,0:0x5600000+100000,0:0x5f00000+100000,0:0x6c00000+100000,0:0x7500000+100000,0:0x7e00000+100000,0:0x8700000+100000,0:0x9000000+100000,0:0x9d00000+100000,0:0xa600000+100000,0:0xaf00000+100000,0:0xb800000+100000,0:0xc500000+100000,0:0xce00000+100000,0:0xd700000+100000,0:0xe000000+100000,0:0xed00000+100000,0:0xf600000+100000,0:0xff00000+100000,0:0x10800000+100000,0:0x11100000+100000,0:0x11e00000+100000,0:0x12700000+100000,0:0x13000000+100000,0:0x13900000+100000,0:0x14600000+100000,0:0x14f00000+100000,0:0x15800000+100000,0:0x16100000+100000,0:0x16a00000+100000,0:0x17700000+100000,0:0x18000000+100000,0:0x18900000+100000,0:0x19200000+100000,0:0x19f00000+100000,0:0x1a800000+100000,0:0x1b100000+100000,0:0x1ba00000+100000,0:0x1c300000+100000,0:0x1d000000+100000,0:0x1d900000+100000,0:0x1e200000+100000,0:0x1eb00000+100000,0:0x1f800000+100000,0:0x20100000+100000,0:0x20a00000+100000,0:0x21300000+100000,0:0x21c00000+100000,0:0x22900000+100000,0:0x23200000+100000,0:0x23b00000+600000,0:0x24500000+100000,0:0x25200000+100000,0:0x25b00000+100000,0:0x26400000+100000,0:0x26d00000+100000,0:0x27a00000+100000,0:0x28300000+100000,0:0x28c00000+100000,0:0x29500000+100000,0:0x29e00000+100000,0:0x2ab00000+100000,0:0x2b400000+100000,0:0x2bd00000+100000,0:0x2c600000+100000,0:0x2d300000+100000,0:0x2dc00000+100000,0:0x2e500000+100000,0:0x2ee00000+100000,0:0x2f700000+100000,0:0x30400000+100000,0:0x30d00000+100000,0:0x31600000+100000,0:0x31f00000+100000,0:0x32c00000+100000,0:0x33500000+100000,0:0x33e00000+100000,0:0x34700000+100000,0:0x35400000+100000,0:0x35d00000+100000,0:0x36600000+100000,0:0x36f00000+100000,0:0x37800000+100000,0:0x38500000+100000,0:0x38e00000+100000,0:0x39700000+100000,0:0x3a000000+100000,0:0x3ad00000+100000,0:0x3b600000+100000,0:0x3bf00000+100000,0:0x3c800000+100000,0:0x3d100000+100000,0:0x3de00000+100000,0:0x3e700000+100000,0:0x3f000000+100000,0:0x3f900000+100000])
2017-07-17 17:11:51.325721 7f8f92e7db80 10 bluefs open_for_write db/000023.sst
2017-07-17 17:11:51.325733 7f8f92e7db80 10 bluefs open_for_write h 0x7f8f9cfee940 on file(ino 33 size 0x0 mtime 2017-07-17 17:11:51.325728 bdev 1 extents [])
2017-07-17 17:11:51.476819 7f8f92e7db80 10 bluefs _flush 0x7f8f9cfee940 0x0~142544f to file(ino 33 size 0x0 mtime 2017-07-17 17:11:51.325728 bdev 1 extents [])
2017-07-17 17:11:51.476849 7f8f92e7db80 10 bluefs _flush_range 0x7f8f9cfee940 pos 0x0 0x0~142544f to file(ino 33 size 0x0 mtime 2017-07-17 17:11:51.325728 bdev 1 extents [])
2017-07-17 17:11:51.476856 7f8f92e7db80 10 bluefs _allocate len 0x142544f from 1
2017-07-17 17:11:51.476858 7f8f92e7db80 10 stupidalloc reserve need 0x1500000 num_free 0x3f602000 num_reserved 0x0
2017-07-17 17:11:51.476861 7f8f92e7db80 10 stupidalloc allocate_int want_size 0x1500000 alloc_unit 0x100000 hint 0x0
2017-07-17 17:11:51.476865 7f8f92e7db80 30 stupidalloc _choose_bin len 0x1500000 -> 9
2017-07-17 17:11:51.476868 7f8f92e7db80 30 stupidalloc allocate_int got 0xd00000~1500000 from bin 9
2017-07-17 17:11:51.476873 7f8f92e7db80 30 stupidalloc _choose_bin len 0x3dd04000 -> 9
2017-07-17 17:11:51.477718 7f8f92e7db80 10 bluefs _fsync 0x7f8f9cfee940 file(ino 33 size 0x142544f mtime 2017-07-17 17:11:51.476878 bdev 1 extents [1:0xd00000+1500000])
2017-07-17 17:11:51.477731 7f8f92e7db80 10 bluefs _flush 0x7f8f9cfee940 no dirty data on file(ino 33 size 0x142544f mtime 2017-07-17 17:11:51.476878 bdev 1 extents [1:0xd00000+1500000])
2017-07-17 17:11:51.477737 7f8f92e7db80 10 bluefs _claim_completed_aios got 1 aios
2017-07-17 17:11:51.477740 7f8f92e7db80 10 bluefs wait_for_aio 0x7f8f9cfee940
2017-07-17 17:11:53.020663 7f8f92e7db80 10 bluefs wait_for_aio 0x7f8f9cfee940 done in 1.542918
2017-07-17 17:11:53.021064 7f8f92e7db80 10 bluefs _flush_and_sync_log txn(seq 232194 len 0x5a crc 0x17b71fa5)
2017-07-17 17:11:53.021073 7f8f92e7db80 10 bluefs _flush_and_sync_log allocating more log runway (0xffffffffc74ff000 remaining)
2017-07-17 17:11:53.021078 7f8f92e7db80 10 bluefs _allocate len 0x400000 from 0
2017-07-17 17:11:53.021080 7f8f92e7db80 10 stupidalloc reserve need 0x400000 num_free 0x703000 num_reserved 0x0
2017-07-17 17:11:53.021083 7f8f92e7db80 10 stupidalloc allocate_int want_size 0x400000 alloc_unit 0x100000 hint 0x2000000
2017-07-17 17:11:53.021085 7f8f92e7db80 30 stupidalloc _choose_bin len 0x400000 -> 9
2017-07-17 17:11:53.021090 7f8f92e7db80 30 stupidalloc allocate_int got 0x2000000~200000 from bin 9
2017-07-17 17:11:53.021094 7f8f92e7db80 10 stupidalloc allocate_int want_size 0x200000 alloc_unit 0x100000 hint 0x2200000
2017-07-17 17:11:53.021095 7f8f92e7db80 30 stupidalloc _choose_bin len 0x200000 -> 9
2017-07-17 17:11:53.021097 7f8f92e7db80 30 stupidalloc allocate_int got 0x3fe00000~104000 from bin 9
2017-07-17 17:11:53.021100 7f8f92e7db80 10 stupidalloc allocate_int want_size 0xfc000 alloc_unit 0x100000 hint 0x3ff04000
2017-07-17 17:11:53.021101 7f8f92e7db80 30 stupidalloc _choose_bin len 0x100000 -> 9
2017-07-17 17:11:53.021103 7f8f92e7db80 30 stupidalloc allocate_int got 0x900000~100000 from bin 9
2017-07-17 17:11:53.029468 7f8f92e7db80 -1 /clove/vm/yanj/cephpkg/ceph/rpmbuild/BUILD/ceph-12.1.0.2/src/os/bluestore/StupidAllocator.cc: In function 'int64_t StupidAllocator::allocate_int(uint64_t, uint64_t, int64_t, uint64_t*, uint32_t*)' thread 7f8f92e7db80 time 2017-07-17 17:11:53.021106
/clove/vm/yanj/cephpkg/ceph/rpmbuild/BUILD/ceph-12.1.0.2/src/os/bluestore/StupidAllocator.cc: 199: FAILED assert(num_reserved >= 0)

 ceph version 12.1.0.2 (dbb4634e6b54ab8866fbad40d01703c89d61a114) luminous (dev)
 1: (ceph::__ceph_assert_fail(char const*, char const*, int, char const*)+0x110) [0x7f8f938df1d0]
 2: (StupidAllocator::allocate_int(unsigned long, unsigned long, long, unsigned long*, unsigned int*)+0x2d8f) [0x7f8f93891a4f]
 3: (StupidAllocator::allocate(unsigned long, unsigned long, unsigned long, long, std::vector<AllocExtent, mempool::pool_allocator<(mempool::pool_index_t)1, AllocExtent> >*)+0xd3) [0x7f8f93891bd3]
 4: (BlueFS::_allocate(unsigned char, unsigned long, std::vector<bluefs_extent_t, mempool::pool_allocator<(mempool::pool_index_t)9, bluefs_extent_t> >*)+0x231) [0x7f8f9385bd01]
 5: (BlueFS::_flush_and_sync_log(std::unique_lock<std::mutex>&, unsigned long, unsigned long)+0xbc4) [0x7f8f93862b94]
 6: (BlueFS::_fsync(BlueFS::FileWriter*, std::unique_lock<std::mutex>&)+0x2a1) [0x7f8f93863f61]
 7: (BlueRocksWritableFile::Sync()+0x63) [0x7f8f9387d863]
 8: (rocksdb::WritableFileWriter::SyncInternal(bool)+0x139) [0x7f8f93bbdf89]
 9: (rocksdb::WritableFileWriter::Sync(bool)+0xd8) [0x7f8f93bbeb78]
 10: (rocksdb::BuildTable(std::string const&, rocksdb::Env*, rocksdb::ImmutableCFOptions const&, rocksdb::MutableCFOptions const&, rocksdb::EnvOptions const&, rocksdb::TableCache*, rocksdb::InternalIterator*, std::unique_ptr<rocksdb::InternalIterator, std::default_delete<rocksdb::InternalIterator> >, 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::CompressionType, rocksdb::CompressionOptions const&, bool, rocksdb::InternalStats*, rocksdb::TableFileCreationReason, rocksdb::EventLogger*, int, rocksdb::Env::IOPriority, rocksdb::TableProperties*, int)+0xee4) [0x7f8f93bd4144]
 11: (rocksdb::DBImpl::WriteLevel0TableForRecovery(int, rocksdb::ColumnFamilyData*, rocksdb::MemTable*, rocksdb::VersionEdit*)+0x8fc) [0x7f8f93b2782c]
 12: (rocksdb::DBImpl::RecoverLogFiles(std::vector<unsigned long, std::allocator<unsigned long> > const&, unsigned long*, bool)+0x1b2b) [0x7f8f93b29b7b]
 13: (rocksdb::DBImpl::Recover(std::vector<rocksdb::ColumnFamilyDescriptor, std::allocator<rocksdb::ColumnFamilyDescriptor> > const&, bool, bool, bool)+0x7c6) [0x7f8f93b2a886]
 14: (rocksdb::DB::Open(rocksdb::DBOptions const&, std::string const&, std::vector<rocksdb::ColumnFamilyDescriptor, std::allocator<rocksdb::ColumnFamilyDescriptor> > const&, std::vector<rocksdb::ColumnFamilyHandle*, std::allocator<rocksdb::ColumnFamilyHandle*> >*, rocksdb::DB**)+0xeb3) [0x7f8f93b2bb13]
 15: (rocksdb::DB::Open(rocksdb::Options const&, std::string const&, rocksdb::DB**)+0x177) [0x7f8f93b2cd47]
 16: (RocksDBStore::do_open(std::ostream&, bool)+0x660) [0x7f8f937ff0e0]
 17: (BlueStore::_open_db(bool)+0x1263) [0x7f8f9378cbc3]
 18: (BlueStore::_mount(bool)+0x3fe) [0x7f8f937be72e]
 19: (OSD::init()+0x28c) [0x7f8f93393efc]
 20: (main()+0x2b8a) [0x7f8f932a117a]
 21: (__libc_start_main()+0xf5) [0x7f8f8f4d3af5]
 22: (()+0x49eba9) [0x7f8f9333bba9]
 NOTE: a copy of the executable, or `objdump -rdS <executable>` is needed to interpret this.

History

#1 Updated by shangzhong zhu about 1 month ago

I'm working on it.

#2 Updated by Sage Weil about 1 month ago

  • Assignee set to Sage Weil

OPTION // stupid | bitmap

the default is bitmap now. we can make this a DEVONLY flag as soon as the config options go in.

#4 Updated by Kefu Chai 24 days ago

  • Status changed from New to Resolved
  • Assignee changed from Sage Weil to shangzhong zhu

#5 Updated by Kefu Chai 24 days ago

https://github.com/ceph/ceph/pull/16645 for marking this option a "dev-only"

Also available in: Atom PDF