Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1083191

Summary: [vdsm] Import VM fails with "image doesn't exist on domain" in case the VM was created as cloned from a template and the destination storage domain where the imported VM's disk will be created on doesn't contain a copy of the template
Product: Red Hat Enterprise Virtualization Manager Reporter: Elad <ebenahar>
Component: vdsmAssignee: Tal Nisan <tnisan>
Status: CLOSED NOTABUG QA Contact: Aharon Canan <acanan>
Severity: high Docs Contact:
Priority: unspecified    
Version: 3.4.0CC: amureini, bazulay, gklein, iheim, lpeer, yeylon
Target Milestone: ---Keywords: Regression
Target Release: 3.4.0   
Hardware: x86_64   
OS: Unspecified   
Whiteboard: storage
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-04-02 08:45:05 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:
Description Flags
logs from engine and vdsm none

Description Elad 2014-04-01 15:54:23 UTC
Created attachment 881415 [details]
logs from engine and vdsm

Description of problem:
I created a VM from a template as cloned, then exported this VM to an export domain. I tried to import the VM from the export domain, only I chose to import the VM's disk to a storage domain which doesn't contain a copy of the template's disk (the template which the VM was originally cloned from). The import operation failed with "image doesn't exist on domain" error in vdsm.log. 


Version-Release number of selected component (if applicable):
rhevm-3.4.0-0.12.beta2.el6ev.noarch
vdsm-4.14.5-0.2.beta2.el6ev.x86_64
libvirt-0.10.2-29.el6_5.5.x86_64


How reproducible:
Always

Steps to Reproduce:
Have 2 data domains (A and B) and an export domain attached to DC
1. Create a VM from template (as cloned) with its disk located on SD A
2. Export the VM to the export domain
3. Import the same VM from the export domain, choose SD B for the VM's disk to be created on


Actual results:
Import fails with the following error message in vdsm.log:

Thread-586::ERROR::2014-04-01 17:45:23,927::hsm::1501::Storage.HSM::(deleteImage) Empty or not found image 048dd4ba-3eac-4e55-bc3e-a58f27baee05 in SD e2a17289-66a0-4c3a-b5db-93518b3ff648. {'df6a865d-699d-4280-b430
-efcd964634f0': ImgsPar(imgs=['eeb1c8b5-7bb8-489b-bca5-0be901fd5ef7'], parent='00000000-0000-0000-0000-000000000000'), '3bedb473-d796-4110-8d91-eefe7e4655a8': ImgsPar(imgs=['49f0a698-3b25-49c6-8697-6939ddae9b0b'],
 parent='00000000-0000-0000-0000-000000000000'), '923c1868-51b8-428b-b876-3f90df5868fe': ImgsPar(imgs=['a8b547c9-1f23-46f4-8a18-a4c21b670933'], parent='00000000-0000-0000-0000-000000000000'), '5a4b978c-2262-4983-b
cd9-b702e9d272e4': ImgsPar(imgs=['0c30a5ea-471d-4a0b-bd92-3d2db0aabdfa'], parent='00000000-0000-0000-0000-000000000000'), 'e8e81074-4ab7-4a4f-bbc8-f5d56f644142': ImgsPar(imgs=['5b1a908f-364b-4e08-8e85-57471d3f2890
'], parent='00000000-0000-0000-0000-000000000000')}
Thread-586::ERROR::2014-04-01 17:45:23,927::task::866::TaskManager.Task::(_setError) Task=`81204080-7032-4053-84d7-6bef604854b1`::Unexpected error
Traceback (most recent call last):
  File "/usr/share/vdsm/storage/task.py", line 873, in _run
    return fn(*args, **kargs)
  File "/usr/share/vdsm/logUtils.py", line 45, in wrapper
    res = f(*args, **kwargs)
  File "/usr/share/vdsm/storage/hsm.py", line 1502, in deleteImage
    raise se.ImageDoesNotExistInSD(imgUUID, sdUUID)
ImageDoesNotExistInSD: Image does not exist in domain: 'image=048dd4ba-3eac-4e55-bc3e-a58f27baee05, domain=e2a17289-66a0-4c3a-b5db-93518b3ff648'


Failure message in engine.log:

2014-04-01 17:45:24,726 ERROR [org.ovirt.engine.core.bll.SPMAsyncTask] (DefaultQuartzScheduler_Worker-77) [4872c496] BaseAsyncTask::LogEndTaskFailure: Task b27ff48f-9c15-4943-999c-ef427dd6e268 (Parent Command Impo
rtVm, Parameters Type org.ovirt.engine.core.common.asynctasks.AsyncTaskParameters) ended with failure:
-- Result: cleanSuccess
-- Message: VDSGenericException: VDSErrorException: Failed to HSMGetAllTasksStatusesVDS, error = low level Image copy failed, code = 261,
-- Exception: VDSGenericException: VDSErrorException: Failed to HSMGetAllTasksStatusesVDS, error = low level Image copy failed, code = 261


Expected results:
Since the VM which was created from a template was created as cloned and not as thin-copy, the import of that VM to the cluster and its disk to a storage domain which doesn't contain a copy of the template which this VM was cloed from should succeed.

Additional info: logs from engine and vdsm

Checked also on RHEV3.3.2 and it doesn't reproduce. Adding regression flag

Comment 2 Elad 2014-04-02 08:45:05 UTC
Closing as NOTABUG since the "image does not exist on domain" error message points on a different issue which is the fact that the storage domain link disappeared.
Missing link issue was already reported here: https://bugzilla.redhat.com/show_bug.cgi?id=1026697

I tried to import the VM from the export domain and picked another domain (a new one), which doesn't contain a copy of the template's disk and it went fine.