Description of problem: As per the size of the leases lv, we should be having 2048 leases in each storage domain. While considering the reserved slots, we can have a maximum of 1948 slots that can be used by the disk images. However if there is only one slot vacant between two occupied slot, this will not be considered. for offset, size in occupiedSlots: if offset - freeSlot > slotSize: break freeSlot = offset + size self.log.debug("Found freeSlot %s in VG %s", freeSlot, self.sdUUID) return freeSlot For example if I have 4,5,6,8,9 acquired , it will return 10 as freeslot and not 7. If it's 4,5,6,9, this will return 7. Version-Release number of selected component (if applicable): vdsm-4.18.13-1.el7ev.x86_64 How reproducible: 100% Steps to Reproduce: 1. Check the metadata slot mapping using: $ lvs -o tags vgname | grep MD_ MD_4 MD_5 MD_6 2. Delete the disk using slot 5 (MD_5): Verify that the MD_5 is not used: $ lvs -o tags vgname | grep MD_ MD_4 MD_6 3. Create new disk Verify that slot 6 is used by the new disk $ lvs -o tags vgname | grep MD_ MD_4 MD_5 MD_6 Actual results: All slots are not considered while adding a new disk volume Expected results: All slots should be considered. Additional info:
Nir, IIUC, https://gerrit.ovirt.org/#/c/65649/ should fix this. Can you confirm/refute?
(In reply to Allon Mureinik from comment #1) > Nir, IIUC, https://gerrit.ovirt.org/#/c/65649/ should fix this. Can you > confirm/refute? Yes, I asked nijin to open separate bug for this issue.
Performed scenario described in comment 0. Verified, using builds: vdsm-4.19.4-1.el7ev.x86_64 ovirt-engine-4.1.0.3-0.1.el7.noarch