Bug 843407
Summary: | ovirt-engine-backend [TEXT]: wrong error message when trying to reconstruct master during remove/create volume actions | ||||||
---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Virtualization Manager | Reporter: | Dafna Ron <dron> | ||||
Component: | ovirt-engine | Assignee: | Greg Padgett <gpadgett> | ||||
Status: | CLOSED CURRENTRELEASE | QA Contact: | Dafna Ron <dron> | ||||
Severity: | low | Docs Contact: | |||||
Priority: | medium | ||||||
Version: | 3.1.0 | CC: | abaron, amureini, dyasny, hateya, iheim, lpeer, Rhev-m-bugs, sgrinber, snmishra, yeylon, ykaul | ||||
Target Milestone: | --- | ||||||
Target Release: | 3.1.0 | ||||||
Hardware: | x86_64 | ||||||
OS: | Linux | ||||||
Whiteboard: | storage | ||||||
Fixed In Version: | SI20 | Doc Type: | Bug Fix | ||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | Environment: | ||||||
Last Closed: | 2012-12-04 20:00:15 UTC | Type: | Bug | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | Storage | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Attachments: |
|
Trying to understand what the issue is here. Currently the code flow is - if (!getParameters().getIsInternal() && !getVmDAO() .getAllRunningForStorageDomain(getStorageDomain().getId()) .isEmpty()) { addCanDoActionMessage(VdcBllMessages.ACTION_TYPE_FAILED_DETECTED_RUNNING_VMS); return false; } if (getStoragePool().getspm_vds_id() != null && getStorageDomain().getstorage_domain_type() != StorageDomainType.ISO && getAsyncTaskDao().getAsyncTaskIdsByEntity(getParameters().getStorageDomainId()).size() > 0) { addCanDoActionMessage(VdcBllMessages.ERROR_CANNOT_DEACTIVATE_DOMAIN_WITH_TASKS); return false; } If we reverse it and check for tasks before running VMs. Will it solve this issue without creating any new one? (In reply to comment #1) > Trying to understand what the issue is here. > > Currently the code flow is - > > if (!getParameters().getIsInternal() > && !getVmDAO() > > .getAllRunningForStorageDomain(getStorageDomain().getId()) > .isEmpty()) { > > addCanDoActionMessage(VdcBllMessages. > ACTION_TYPE_FAILED_DETECTED_RUNNING_VMS); > return false; > } > if (getStoragePool().getspm_vds_id() != null > && getStorageDomain().getstorage_domain_type() != > StorageDomainType.ISO > && > getAsyncTaskDao().getAsyncTaskIdsByEntity(getParameters(). > getStorageDomainId()).size() > 0) { > > addCanDoActionMessage(VdcBllMessages. > ERROR_CANNOT_DEACTIVATE_DOMAIN_WITH_TASKS); > return false; > } > > If we reverse it and check for tasks before running VMs. Will it solve this > issue without creating any new one? it was two months ago, but I don't think that there were running vm's. so the first CanDoAction should not have been fired. http://gerrit.ovirt.org/7997 (In reply to comment #2) > it was two months ago, but I don't think that there were running vm's. > so the first CanDoAction should not have been fired. The root cause is that some tasks cause the VMs to appear "running" even if they aren't, according to getAllRunningForStorageDomain--the stored procedure that backs it looks for VMs that aren't in the "Down" state--which includes not only those that are running, but also those that are migrating, locked, etc. (In reply to comment #1) > If we reverse it and check for tasks before running VMs. Will it solve this > issue without creating any new one? Depends... there still may be cases where there are no tasks, yet the VM is in such a state as to appear running. Instead, I've generalized the message so it is more clear what is going on. Merged I3ce9ce378ffeed980af508e6556f9d844a3e07bd verified on si20 Error while executing action: Cannot deactivate Master Data Domain while there are running tasks on its Data Center. -Please wait until tasks will finish and try again. |
Created attachment 600460 [details] log Description of problem: we are getting the following error: 2012-07-26 11:43:54,658 WARN [org.ovirt.engine.core.bll.storage.DeactivateStorageDomainCommand] (ajp-/0.0.0.0:8009-7) CanDoAction of action DeactivateStorageDomain failed. Reasons:VAR__TYPE__STORAGE__DOMAIN,VAR__ACTION__DEACTIVATE,ACTION_TYPE_FAILED_DETECTED_RUNNING_VMS Version-Release number of selected component (if applicable): si11 How reproducible: 70% Steps to Reproduce: 1. reconstruct master domain while there are running tasks (such as create vm's, remove vm's) 2. 3. Actual results: if we block the reconstruct *which does not happen each time because of a race bug, than we are getting a wrong error message that there are running vms Expected results: we should rephrase error Additional info: backend log