This is probably noisy for an *actual* ENOSPC, but the OSD should
actually prevent those from happening in general, and we are
very interested in fixing spurious allocation failures due to
allocator problems. See http://tracker.ceph.com/issues/18054
Signed-off-by: Sage Weil <sage@redhat.com>
r = alloc[id]->alloc_extents(left, min_alloc_size,
hint, &extents, &count);
if (r < 0) {
+ derr << __func__ << " allocate failed on 0x" << std::hex << left
+ << " min_alloc_size 0x" << min_alloc_size << std::dec << dendl;
+ alloc[id]->dump();
assert(0 == "allocate failed... wtf");
return r;
}
uint32_t elength;
r = alloc->allocate(gift, min_alloc_size, hint, &eoffset, &elength);
if (r < 0) {
+ derr << __func__ << " allocate failed on 0x" << std::hex << gift
+ << " min_alloc_size 0x" << min_alloc_size << std::dec << dendl;
+ alloc->dump();
assert(0 == "allocate failed, wtf");
return r;
}