Hi All,
I'm observing an assert at BitMapAllocator with recent master.
Here is the call stack
-2> 2016-09-08 14:03:06.012847 7fe64ffff700 0
bluestore(./fio-bluestore) _balance_bluefs_freespace reclaiming
1908342784 (1819 M)
-1> 2016-09-08 14:03:06.012915 7fe64ffff700 0 bitmapalloc:reserve
1908342784 1048576
0> 2016-09-08 14:03:06.026425 7fe64ffff700 -1
/root/ceph/ceph/src/os/bluestore/BitMapAllocator.cc: In function
'virtual int BitMapAllocator::reserve(uint64_t)' thread 7fe64ffff700
time 2016-09-08 14:03:06.012930
/root/ceph/ceph/src/os/bluestore/BitMapAllocator.cc: 88: FAILED
assert(!(need % m_block_size))
ceph version v11.0.0-2160-g1556190
(15561908510a3838e87f1938e5afc65570fecdc4)
1: (ceph::__ceph_assert_fail(char const*, char const*, int, char
const*)+0x95) [0x7fe72f132d7e]
2: (BitMapAllocator::reserve(unsigned long)+0x204) [0x7fe72efb8482]
3: (BlueFS::reclaim_blocks(unsigned int, unsigned long, unsigned
long*, unsigned int*)+0x286) [0x7fe72ef6bc3a]
4:
(BlueStore::_balance_bluefs_freespace(std::vector<bluestore_pextent_t,
std::allocator<bluestore_pextent_t> >*)+0x1417) [0x7fe72ee62227]
5: (BlueStore::_kv_sync_thread()+0x1234) [0x7fe72ee849d2]
6: (BlueStore::KVSyncThread::entry()+0x1c) [0x7fe72eea81c8]
7: (Thread::entry_wrapper()+0xc1) [0x7fe72f1ea9dd]
8: (Thread::_entry_func(void*)+0x18) [0x7fe72f1ea912]
9: (()+0x76fa) [0x7fe7421dc6fa]
10: (clone()+0x6d) [0x7fe741d0eb5d]
The line below presents 'reclaim' var value when calling
bluefs->reclaim_blocks from BlueStore.cc
-2> 2016-09-08 14:03:06.012847 7fe64ffff700 0
bluestore(./fio-bluestore) _balance_bluefs_freespace reclaiming
1908342784 (1819 M)
and following one provides need & m_block_size vars at BitMapAlloc::reserve
-1> 2016-09-08 14:03:06.012915 7fe64ffff700 0 bitmapalloc:reserve
1908342784 1048576
One can see that BlueStore provides a value not aligned with
BitMapAllocator's m_block_size.
Indeed there is
reclaim = P2ROUNDUP(reclaim, min_alloc_size);
where min_alloc_size = 64K in my case, not 1M as BitMapAllocator expects.
Any comments/suggestions?
Thanks,
Igor
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html