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

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: vdsmAssignee: Saggi Mizrahi <smizrahi>
Status: CLOSED ERRATA QA Contact: Elad <ebenahar>
Severity: high Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: 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:
Description Flags
logs none

Description Dafna Ron 2012-12-05 15:46:35 UTC
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

Comment 1 Dafna Ron 2012-12-05 16:00:05 UTC
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'

Comment 2 Saggi Mizrahi 2012-12-05 20:00:20 UTC
http://gerrit.ovirt.org/#/c/9749/

Comment 9 Meital Bourvine 2013-07-17 13:22:29 UTC
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: ()

Comment 10 Charlie 2013-11-28 00:30:22 UTC
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.

Comment 11 errata-xmlrpc 2014-01-21 16:04:28 UTC
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

Comment 12 Red Hat Bugzilla 2023-09-14 01:39:18 UTC
The needinfo request[s] on this closed bug have been removed as they have been unresolved for 1000 days