In Some situations, such as a newly created disks or disks on a storage domain that's been re-connected, the free space on the storage domain is not known, until a later time, when it is polled and updated. In this situation, the free space was interpreted as 0, causing a strict reaction from the system, not allowing space consuming operations to be performed, though is doesn't necessarily mean the storage has 0 free space. Now these cases do not assume low (0) space, and allow operations to perform. If there is indeed lack of space, the operations will fail on VDSM.
Created attachment 979924[details]
engine log and db_dump
Description of problem:
Disk creation, on a storage domain, which its availeble size is N/A (null), is blocked in CanDoAction of 'disk space low on domain'.
Version-Release number of selected component (if applicable):
rhev 3.5 vt13.6
How reproducible:
Always
Steps to Reproduce:
1. Open 'add' disk prompt, pick a domain and don't click 'OK'
2. Block connectivity to the picked storage domain (make sure it's not the master domain). Wait for the domain free space and total space to become 'N/A'
3. Click 'OK' in the disk creation prompt
Actual results:
Storage domain's available_disk_size is null:
# SELECT * from storage_domain_dynamic;
-[ RECORD 5 ]-------+-------------------------------------
id | 04efe3a0-555f-4505-a5b6-c343133f63d8
available_disk_size |
used_disk_size |
_update_date | 2015-01-14 11:47:31.133245+02
-[ RECORD 6 ]-------+-------------------------------------
Disk creation action is blocked on CanDoAction of 'disk space low on domain':
2015-01-14 11:48:08,780 WARN [org.ovirt.engine.core.bll.AddDiskCommand] (ajp-/127.0.0.1:8702-9) [568b9c3e] CanDoAction of action AddDisk failed. Reasons:VAR__ACTION__ADD,VAR__TYPE__VM_DISK,ACTION_TYPE_FAILED_DISK_SPACE_LOW_ON_STORAGE_DOMAIN,$storageName vnx-3
Expected results:
Disk creation should proceed when the value is null, as stated here:
https://bugzilla.redhat.com/show_bug.cgi?id=1176854#c3
Additional info:
engine log and db_dump
When disk creation is initialized while the available free space on the storage domain is null, the operation isn't blocked and proceeded (and eventually fails on vdsm).
Verified using ovirt-engine-3.6.0_qa1