+++ This bug was initially created as a clone of Bug #1129261 +++
Description of problem:
when hosted engine broker tries to connect it's storage using vdsm it fail with: [Errno 2] No such file or directory
Version-Release number of selected component (if applicable):
vdsm-4.16.1-6.gita4a4614.el6.x86_64
How reproducible:
100%
Steps to Reproduce:
1. install hosted-engine
2. reboot the machine
3. check if the hosted engine storage is up'n'running
4. /rhev/data-center/mnt/blockSD/3498465f-eb04-49f3-81d2-f7713b392e5a/ha_agent/hosted-engine.metadata points to volume which is not activated
Actual results:
ha-agent doesn't run
Expected results:
storage connected, ha-agent running
Additional info:
vdsm log attached
--- Additional comment from Jiri Moskovcak on 2014-08-12 08:28:11 EDT ---
after additional testing, it seems like it actually activates the lvm device, but fails to create some symlink and returns non-zero error code which makes the he-broker think that it fails even though the storage is actually available.
--- Additional comment from Dan Kenigsberg on 2014-08-12 10:21:50 EDT ---
Thread-1205::ERROR::2014-08-12 14:13:03,605::blockSD::1054::Storage.StorageDomain::(linkBCImage) Failed to create path to image directory: /rhev/data-center/84cfc3d9-03cf-4ec5-9f29-a18ba1f6f02f/3498465f-eb04-49f3-81d2-f7713b392e5a/images/04f6b652-5e14-40d8-973c-ca384ffc0c50
Thread-1205::ERROR::2014-08-12 14:13:03,605::task::866::Storage.TaskManager.Task::(_setError) Task=`0ffda0cc-8afc-46bb-8b80-49e0a4291a68`::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 3213, in prepareImage
runImgPath = dom.linkBCImage(imgPath, imgUUID)
File "/usr/share/vdsm/storage/blockSD.py", line 1047, in linkBCImage
os.symlink(imgPath, dst)
OSError: [Errno 2] No such file or directory
--- Additional comment from Federico Simoncelli on 2014-08-13 11:52:06 EDT ---
The request fails because you're not connected to a pool. To prepare an image when you're not connected to a pool (general HE use case) you should specify a blank pool uuid (00000000-0000-0000-0000-000000000000). E.g.:
prepareImage(sdUUID='3498465f-eb04-49f3-81d2-f7713b392e5a', spUUID='00000000-0000-0000-0000-000000000000', imgUUID='e3449f52-b227-4666-a4d5-9fdc56f000ce', leafUUID='04f6b652-5e14-40d8-973c-ca384ffc0c50')
--- Additional comment from Jiri Moskovcak on 2014-08-14 03:33:25 EDT ---
(In reply to Federico Simoncelli from comment #3)
> The request fails because you're not connected to a pool. To prepare an
> image when you're not connected to a pool (general HE use case) you should
> specify a blank pool uuid (00000000-0000-0000-0000-000000000000). E.g.:
>
> prepareImage(sdUUID='3498465f-eb04-49f3-81d2-f7713b392e5a',
> spUUID='00000000-0000-0000-0000-000000000000',
> imgUUID='e3449f52-b227-4666-a4d5-9fdc56f000ce',
> leafUUID='04f6b652-5e14-40d8-973c-ca384ffc0c50')
- thanks for the hint, going to try that, btw, I'm pretty sure it used to work back in May when we start using vdsm api for storage creation.
--- Additional comment from Jiri Moskovcak on 2014-08-14 03:47:59 EDT ---
btw, does the same apply for getVolumePath ?
--- Additional comment from Jiri Moskovcak on 2014-08-14 04:06:09 EDT ---
This is what I get if I use blank pool:
Thread-199::ERROR::2014-08-14 10:04:35,846::task::866::Storage.TaskManager.Task::(_setError) Task=`95689457-eec0-405c-8d0c-3f81e2556121`::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 3237, in prepareImage
return {'path': leafPath, 'info': leafInfo,
UnboundLocalError: local variable 'leafInfo' referenced before assignment