Bug 826939

Summary: ovirt-engine-backend [Multiple Domains]: please block export of vm's/template while one of the vm's images is located on domain in mainteance
Product: Red Hat Enterprise Virtualization Manager Reporter: Dafna Ron <dron>
Component: ovirt-engineAssignee: Tal Nisan <tnisan>
Status: CLOSED CURRENTRELEASE QA Contact: Dafna Ron <dron>
Severity: high Docs Contact:
Priority: high    
Version: 3.1.0CC: abaron, acathrow, amureini, dyasny, hateya, iheim, lpeer, Rhev-m-bugs, vvyazmin, yeylon, ykaul
Target Milestone: ---   
Target Release: 3.1.0   
Hardware: x86_64   
OS: Linux   
Whiteboard: storage
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 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 none

Description Dafna Ron 2012-05-31 09:32:42 UTC
Description of problem:

trying to export a vm while one of its images is located on a domain in mainetance will be sent to vdsm instead of being blocked in backend. 
if the disk is marked as bootable we will get "faied to read OVF, it may be cvorrupted" error from vdsm and if the disk is not marked as bootable we will get can't find domain. 

**template export is blocked - this is only on vm export**

Version-Release number of selected component (if applicable):

si4

How reproducible:

100%

Steps to Reproduce:
1. create 3 domains + export domain
2. create a vm with two disks each located on a different domain (not the master domain)
3. put domain in maintenance -> try to export domain 
  
Actual results:

execution fails in vdsm with different errors (depending if the disk is bootable or not)

Expected results:

we should block exection in backend like we do for templates


Additional info:logs will be attached


vdsm log fpr non-bootable disk: 

Thread-124691::ERROR::2012-05-28 12:14:19,592::task::853::TaskManager.Task::(_setError) Task=`ce81cad6-eb3e-4de2-acf9-9a743fc87c63`::Unexpected error
Traceback (most recent call last):
  File "/usr/share/vdsm/storage/task.py", line 861, in _run
    return fn(*args, **kargs)
  File "/usr/share/vdsm/logUtils.py", line 38, in wrapper
    res = f(*args, **kwargs)
  File "/usr/share/vdsm/storage/hsm.py", line 1306, in moveImage
    self.validateSdUUID(srcDomUUID)
  File "/usr/share/vdsm/storage/hsm.py", line 209, in validateSdUUID
    sdCache.produce(sdUUID=sdUUID).validate()
  File "/usr/share/vdsm/storage/sdc.py", line 93, in produce
    dom = self._findDomain(sdUUID)
  File "/usr/share/vdsm/storage/sdc.py", line 118, in _findDomain
    raise se.StorageDomainDoesNotExist(sdUUID)
StorageDomainDoesNotExist: Storage domain does not exist: ('31bb8e4b-ed31-4ec7-bb43-6d28a26955c3',)
Thread-124691::DEBUG::2012-05-28 12:14:19,594::task::872::TaskManager.Task::(_run) Task=`ce81cad6-eb3e-4de2-acf9-9a743fc87c63`::Task._run: ce81cad6-eb3e-4de2-acf9-9a743fc87c63 ('38bd59fc-04a2-4f56-abb4-62fd34bb83f3', '31bb8e4b-ed31-4ec7-bb43-6d28a26955c3', '1c4b81c0-bc2b-4b57-9341-5179ee848abd', '25dc582f-ec42-42aa-823d-4a714290c867', '', 1, 'false', 'false') {} failed - stopping task
Thread-124691::DEBUG::2012-05-28 12:14:19,594::task::1199::TaskManager.Task::(stop) Task=`ce81cad6-eb3e-4de2-acf9-9a743fc87c63`::stopping in state preparing (force False)
Thread-124691::DEBUG::2012-05-28 12:14:19,595::task::978::TaskManager.Task::(_decref) Task=`ce81cad6-eb3e-4de2-acf9-9a743fc87c63`::ref 1 aborting True
Thread-124691::INFO::2012-05-28 12:14:19,595::task::1157::TaskManager.Task::(prepare) Task=`ce81cad6-eb3e-4de2-acf9-9a743fc87c63`::aborting: Task is aborted: 'Storage domain does not exist' - code 358


vdsm error for bootable disk: 


ddf36b70-ed0c-4d5f-a41a-2aaa291ce5c3::ERROR::2012-05-28 12:24:05,685::task::853::TaskManager.Task::(_setError) Task=`ddf36b70-ed0c-4d5f-a41a-2aaa291ce5c3`::Unexpected error
Traceback (most recent call last):
  File "/usr/share/vdsm/storage/task.py", line 861, in _run
    return fn(*args, **kargs)
  File "/usr/share/vdsm/storage/task.py", line 320, in run
    return self.cmd(*self.argslist, **self.argsdict)
  File "/usr/share/vdsm/storage/securable.py", line 63, in wrapper
    return f(self, *args, **kwargs)
  File "/usr/share/vdsm/storage/sp.py", line 1662, in moveImage
    image.Image(repoPath).move(srcDomUUID, dstDomUUID, imgUUID, vmUUID, op, postZero, force)
  File "/usr/share/vdsm/storage/image.py", line 670, in move
    chains = self._createTargetImage(destDom, srcSdUUID, imgUUID)
  File "/usr/share/vdsm/storage/image.py", line 595, in _createTargetImage
    raise se.DestImageActionError(imgUUID, destDom.sdUUID, str(e))
DestImageActionError: Error during destination image manipulation: 'image=25dc582f-ec42-42aa-823d-4a714290c867, dest domain=1c4b81c0-bc2b-4b57-9341-5179ee848abd: msg=Action was stopped: ()'
ddf36b70-ed0c-4d5f-a41a-2aaa291ce5c3::DEBUG::2012-05-28 12:24:05,686::task::872::TaskManager.Task::(_run) Task=`ddf36b70-ed0c-4d5f-a41a-2aaa291ce5c3`::Task._run: ddf36b70-ed0c-4d5f-a41a-2aaa291ce5c3 () {} failed - stopping task
ddf36b70-ed0c-4d5f-a41a-2aaa291ce5c3::DEBUG::2012-05-28 12:24:05,686::task::1199::TaskManager.Task::(stop) Task=`ddf36b70-ed0c-4d5f-a41a-2aaa291ce5c3`::stopping in state running (force False)
ddf36b70-ed0c-4d5f-a41a-2aaa291ce5c3::DEBUG::2012-05-28 12:24:05,687::task::903::TaskManager.Task::(_runJobs) Task=`ddf36b70-ed0c-4d5f-a41a-2aaa291ce5c3`::aborting: Task is aborted: u'ddf36b70-ed0c-4d5f-a41a-2aaa291ce5c3' - code 411

Comment 1 Dafna Ron 2012-05-31 09:37:08 UTC
Created attachment 588015 [details]
logs

Comment 2 Dafna Ron 2012-05-31 12:00:19 UTC
please ignore the ovf curroption. 
this is a different problem on my setup which is not connected to this bug. 
but the error: Error during destination image manipulation is the correct error for this bug

Comment 3 Tal Nisan 2012-06-20 13:13:37 UTC
Fixed in si6, returns the following can do message:
"Error while executing action: Cannot copy Template. The relevant Storage Domain is inaccessible.
-Please handle Storage Domain issues and retry the operation."

Comment 4 Dafna Ron 2012-06-20 16:58:28 UTC
we are blocking with wrong errors. 
will open new bugs for errors. 
verified on si6