Bug 883937
| Summary: | vdsm [POSIX]: no clear error when cifs domain creation fails when vdsm is trying to read metadata with directio | ||||||
|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Virtualization Manager | Reporter: | Dafna Ron <dron> | ||||
| Component: | vdsm | Assignee: | Saggi Mizrahi <smizrahi> | ||||
| Status: | CLOSED ERRATA | QA Contact: | Elad <ebenahar> | ||||
| Severity: | high | Docs Contact: | |||||
| Priority: | unspecified | ||||||
| Version: | unspecified | CC: | abaron, acanan, acathrow, amureini, bazulay, cboyle, cpelland, ebenahar, iheim, jkt, lpeer, nlevinki, scohen, smizrahi, yeylon | ||||
| Target Milestone: | --- | ||||||
| Target Release: | 3.3.0 | ||||||
| Hardware: | x86_64 | ||||||
| OS: | Linux | ||||||
| Whiteboard: | storage | ||||||
| Fixed In Version: | is1 | Doc Type: | Bug Fix | ||||
| Doc Text: |
An invalid argument error was displayed when creating the domain and VDSM tried to read the metadata.
This was fixed by checking that underlying file system supports direct IO:
- checking when creating a domain
- checking when creating a domain object
This is done so that posixfs domains are not allowed on top of targets that don't support direct IO. Direct IO is needed in order to read the metadata reliably in a clustered environment. It is also a required feature for Sanlock.
|
Story Points: | --- | ||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2014-01-21 16:04:28 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: |
|
||||||
correction to bug: we get invalid argument error when during the create of the domain vdsm tried to read the metadata:
Thread-80347::ERROR::2012-12-05 16:56:52,637::task::853::TaskManager.Task::(_setError) Task=`8831c22c-d4e3-4049-8c89-950c1b2dfa41`::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 2297, in createStorageDomain
typeSpecificArg, storageType, domVersion)
File "/usr/share/vdsm/storage/nfsSD.py", line 93, in create
fsd = cls(os.path.join(mntPoint, sdUUID))
File "/usr/share/vdsm/storage/fileSD.py", line 130, in __init__
sdUUID = metadata[sd.DMDK_SDUUID]
File "/usr/share/vdsm/storage/persistentDict.py", line 85, in __getitem__
return dec(self._dict[key])
File "/usr/share/vdsm/storage/persistentDict.py", line 193, in __getitem__
with self._accessWrapper():
File "/usr/lib64/python2.6/contextlib.py", line 16, in __enter__
return self.gen.next()
File "/usr/share/vdsm/storage/persistentDict.py", line 147, in _accessWrapper
self.refresh()
File "/usr/share/vdsm/storage/persistentDict.py", line 224, in refresh
lines = self._metaRW.readlines()
File "/usr/share/vdsm/storage/fileSD.py", line 99, in readlines
return misc.stripNewLines(self._oop.directReadLines(self._metafile))
File "/usr/share/vdsm/storage/remoteFileHandler.py", line 276, in callCrabRPCFunction
*args, **kwargs)
File "/usr/share/vdsm/storage/remoteFileHandler.py", line 190, in callCrabRPCFunction
raise err
OSError: [Errno 22] Invalid argument: '/rhev/data-center/mnt/__10.35.97.9_TEST_kaul/a820ca09-ead6-4a1a-aec5-1321a613e82b/dom_md/metadata'
Thread-80347::DEBUG::2012-12-05 16:56:52,637::task::872::TaskManager.Task::(_run) Task=`8831c22c-d4e3-4049-8c89-950c1b2dfa41`::Task._run: 8831c22c-d4e3-4049-8c89-950c1b2dfa41 (6, 'a820ca09-ead6-4a1a-aec5-1321a613e82b', 'dafna', '//10.35
.97.9/TEST/kaul', 1, '3') {} failed - stopping task
Thread-80347::DEBUG::2012-12-05 16:56:52,638::task::1199::TaskManager.Task::(stop) Task=`8831c22c-d4e3-4049-8c89-950c1b2dfa41`::stopping in state preparing (force False)
Thread-80347::DEBUG::2012-12-05 16:56:52,638::task::978::TaskManager.Task::(_decref) Task=`8831c22c-d4e3-4049-8c89-950c1b2dfa41`::ref 1 aborting True
Thread-80347::INFO::2012-12-05 16:56:52,639::task::1157::TaskManager.Task::(prepare) Task=`8831c22c-d4e3-4049-8c89-950c1b2dfa41`::aborting: Task is aborted: u"[Errno 22] Invalid argument: '/rhev/data-center/mnt/__10.35.97.9_TEST_kaul/a8
20ca09-ead6-4a1a-aec5-1321a613e82b/dom_md/metadata'" - code 100
Thread-80347::DEBUG::2012-12-05 16:56:52,639::task::1162::TaskManager.Task::(prepare) Task=`8831c22c-d4e3-4049-8c89-950c1b2dfa41`::Prepare: aborted: [Errno 22] Invalid argument: '/rhev/data-center/mnt/__10.35.97.9_TEST_kaul/a820ca09-ead
6-4a1a-aec5-1321a613e82b/dom_md/metadata'
Thread-80347::DEBUG::2012-12-05 16:56:52,640::task::978::TaskManager.Task::(_decref) Task=`8831c22c-d4e3-4049-8c89-950c1b2dfa41`::ref 0 aborting True
Thread-80347::DEBUG::2012-12-05 16:56:52,640::task::913::TaskManager.Task::(_doAbort) Task=`8831c22c-d4e3-4049-8c89-950c1b2dfa41`::Task._doAbort: force False
Thread-80347::DEBUG::2012-12-05 16:56:52,641::resourceManager::844::ResourceManager.Owner::(cancelAll) Owner.cancelAll requests {}
Thread-80347::DEBUG::2012-12-05 16:56:52,641::task::588::TaskManager.Task::(_updateState) Task=`8831c22c-d4e3-4049-8c89-950c1b2dfa41`::moving from state preparing -> state aborting
Thread-80347::DEBUG::2012-12-05 16:56:52,642::task::537::TaskManager.Task::(__state_aborting) Task=`8831c22c-d4e3-4049-8c89-950c1b2dfa41`::_aborting: recover policy none
Thread-80347::DEBUG::2012-12-05 16:56:52,642::task::588::TaskManager.Task::(_updateState) Task=`8831c22c-d4e3-4049-8c89-950c1b2dfa41`::moving from state aborting -> state failed
Thread-80347::DEBUG::2012-12-05 16:56:52,642::resourceManager::809::ResourceManager.Owner::(releaseAll) Owner.releaseAll requests {} resources {}
Thread-80347::DEBUG::2012-12-05 16:56:52,643::resourceManager::844::ResourceManager.Owner::(cancelAll) Owner.cancelAll requests {}
Thread-80347::ERROR::2012-12-05 16:56:52,643::dispatcher::69::Storage.Dispatcher.Protect::(run) [Errno 22] Invalid argument: '/rhev/data-center/mnt/__10.35.97.9_TEST_kaul/a820ca09-ead6-4a1a-aec5-1321a613e82b/dom_md/metadata'
Traceback (most recent call last):
File "/usr/share/vdsm/storage/dispatcher.py", line 61, in run
result = ctask.prepare(self.func, *args, **kwargs)
File "/usr/share/vdsm/storage/task.py", line 1164, in prepare
raise self.error
OSError: [Errno 22] Invalid argument: '/rhev/data-center/mnt/__10.35.97.9_TEST_kaul/a820ca09-ead6-4a1a-aec5-1321a613e82b/dom_md/metadata'
Cuurent error is:
Thread-30606::INFO::2013-07-17 16:17:36,531::nfsSD::69::Storage.StorageDomain::(create) sdUUID=7d5a7bc4-3c59-4aef-9297-9ff1d4d32fba domainName=bla remotePath=//10.35.71.180/test_share domClass=1
Thread-30606::ERROR::2013-07-17 16:17:36,626::fileSD::76::Storage.fileSD::(validateFileSystemFeatures) Underlying file system doesn't supportdirect IO
Thread-30606::ERROR::2013-07-17 16:17:36,627::task::850::TaskManager.Task::(_setError) Task=`b5a6503f-5dd1-4b22-b679-fff09e0db8b2`::Unexpected error
Traceback (most recent call last):
File "/usr/share/vdsm/storage/task.py", line 857, 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 2527, in createStorageDomain
domVersion)
File "/usr/share/vdsm/storage/nfsSD.py", line 80, in create
version)
File "/usr/share/vdsm/storage/nfsSD.py", line 49, in _preCreateValidation
fileSD.validateFileSystemFeatures(sdUUID, domPath)
File "/usr/share/vdsm/storage/fileSD.py", line 78, in validateFileSystemFeatures
raise se.StorageDomainTargetUnsupported()
StorageDomainTargetUnsupported: Storage Domain target is unsupported: ()
This bug is currently attached to errata RHBA-2013:15291. If this change is not to be documented in the text for this errata please either remove it from the errata, set the requires_doc_text flag to minus (-), or leave a "Doc Text" value of "--no tech note required" if you do not have permission to alter the flag. Otherwise to aid in the development of relevant and accurate release documentation, please fill out the "Doc Text" field above with these four (4) pieces of information: * Cause: What actions or circumstances cause this bug to present. * Consequence: What happens when the bug presents. * Fix: What was done to fix the bug. * Result: What now happens when the actions or circumstances above occur. (NB: this is not the same as 'the bug doesn't present anymore') Once filled out, please set the "Doc Type" field to the appropriate value for the type of change made and submit your edits to the bug. For further details on the Cause, Consequence, Fix, Result format please refer to: https://bugzilla.redhat.com/page.cgi?id=fields.html#cf_release_notes Thanks in advance. Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2014-0040.html The needinfo request[s] on this closed bug have been removed as they have been unresolved for 1000 days |
Created attachment 658269 [details] logs Description of problem: we fail to mount smb share on invalid argument when vdsm is trying to read teh metadata. Version-Release number of selected component (if applicable): vdsm-4.9.6-44.0.el6_3.x86_64 How reproducible: 100% Steps to Reproduce: 1. try to create a new domain with posix for cifs 2. 3. in path put: //<win ip>/dirname/dirname in VFS put: cifc in mount options put: uid=36,gid=36,username=<XXXX>,password=<XXXXX> Actual results: we fail to read metadata because kernel does not support directio flag Expected results: vdsm should check if kernel supports directio and if not issue a clear error to user. Additional info: logs