Bug 1429170

Summary: Cold move of file based (nfs) disk failed when the VM is cloned from template as thin provision
Product: [oVirt] ovirt-engine Reporter: Eyal Shenitzky <eshenitz>
Component: BLL.StorageAssignee: Liron Aravot <laravot>
Status: CLOSED CURRENTRELEASE QA Contact: Eyal Shenitzky <eshenitz>
Severity: high Docs Contact:
Priority: unspecified    
Version: 4.1.1.3CC: amureini, bugs, eedri, laravot, ratamir, tnisan
Target Milestone: ovirt-4.1.1-1Keywords: Regression
Target Release: 4.1.1.6Flags: rule-engine: ovirt-4.1+
rule-engine: blocker+
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-04-21 09:41:01 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
engine and vdsm logs
none
new VDSM and engine logs none

Description Eyal Shenitzky 2017-03-05 09:52:46 UTC
Created attachment 1260039 [details]
engine and vdsm logs

Description of problem:
Cold migration failed when trying to migrate file based disk (nfs) of VM that created 
from template as thin provision copy.

The operation failed with the following error in the VDSM:

2017-03-05 11:47:30,523+0200 INFO  (tasks/0) [storage.ThreadPool.WorkerThread] START task 7d2d32df-20f7-4055-8ddf-6fcbb4af868e (cmd=<bound method Task.commit of <storage.task.Task instance at 0x173a368>>, args=None) (threadPool:208)
2017-03-05 11:47:30,556+0200 ERROR (tasks/0) [storage.TaskManager.Task] (Task='7d2d32df-20f7-4055-8ddf-6fcbb4af868e') Unexpected error (task:870)
Traceback (most recent call last):
  File "/usr/share/vdsm/storage/task.py", line 877, in _run
    return fn(*args, **kargs)
  File "/usr/share/vdsm/storage/task.py", line 333, in run
    return self.cmd(*self.argslist, **self.argsdict)
  File "/usr/lib/python2.7/site-packages/vdsm/storage/securable.py", line 79, in wrapper
    return method(self, *args, **kwargs)
  File "/usr/share/vdsm/storage/sp.py", line 1912, in createVolume
    srcVol = srcDom.produceVolume(srcImgUUID, srcVolUUID)
  File "/usr/share/vdsm/storage/sd.py", line 748, in produceVolume
    volUUID)
  File "/usr/share/vdsm/storage/fileVolume.py", line 361, in __init__
    manifest = self.manifestClass(repoPath, sdUUID, imgUUID, volUUID)
  File "/usr/share/vdsm/storage/fileVolume.py", line 61, in __init__
    volUUID)
  File "/usr/share/vdsm/storage/volume.py", line 84, in __init__
    self.validate()
  File "/usr/share/vdsm/storage/volume.py", line 106, in validate
    self.validateImagePath()
  File "/usr/share/vdsm/storage/fileVolume.py", line 80, in validateImagePath
    raise se.ImagePathError(imageDir)
ImagePathError: Image path does not exist or cannot be accessed/created: (u'/rhev/data-center/mnt/yellow-vdsb.qa.lab.tlv.redhat.com:_Storage__NFS_storage__local__ge10__nfs__2/f99afe6c-ddef-45a2-b55c-3e81e35ac4f6/images/6c1f1bc7-8501-4432-8f3a-f43e12ebcd48',)


Version-Release number of selected component (if applicable):
Engine - 4.1.1.3-0.1.el7
VDSM - 4.19.7-1.el7ev.x86_64

How reproducible:


Steps to Reproduce:
1. Create a VM with disk on file storage domain
2. Create Template from the VM in step 1
3. Create VM as thin provisioned copy from the template in step 2
4. Move the VM disk to another storage domain when the VM is down

Actual results:
Failed to move disk to another 

Expected results:
Move disk operation should succeed. 

Additional info:
Engine and VDSM logs are attached

Comment 1 Eyal Shenitzky 2017-03-05 12:50:25 UTC
Created attachment 1260060 [details]
new VDSM and engine logs

Comment 2 Eyal Edri 2017-03-19 08:06:20 UTC
Is it means for ovirt-4.1.1? is so it needs to be backported to ovirt-4.1.1.z, if not then it needs to move to ovirt-4.1.2.

Comment 3 Allon Mureinik 2017-03-19 14:49:54 UTC
(In reply to Eyal Edri from comment #2)
> Is it means for ovirt-4.1.1? is so it needs to be backported to
> ovirt-4.1.1.z, if not then it needs to move to ovirt-4.1.2.
Liron, please backport this to ovirt-4.1.1.z.

Comment 4 Eyal Shenitzky 2017-03-28 07:35:07 UTC
 Verified with the following code:
------------------------------------------
vdsm- 4.19.10-1.el7ev.x86_64
rhevm- 4.1.1.5-0.1.el7

Verified with the following scenario:
------------------------------------------
Steps to Reproduce:
1. Create a VM with disk on file storage domain
2. Create Template from the VM in step 1
3. Create VM as thin provisioned copy from the template in step 2
4. Move the VM disk to another storage domain when the VM is down


Moving to VERIFIED