assert at BitMapAllocator

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux