| Summary: | [ovirt] [vdsm] fenceSpmStorage fails on secure Error (manual fence is broken) | ||
|---|---|---|---|
| Product: | [Retired] oVirt | Reporter: | Haim <hateya> |
| Component: | vdsm | Assignee: | Dan Kenigsberg <danken> |
| Status: | CLOSED CURRENTRELEASE | QA Contact: | yeylon <yeylon> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | unspecified | CC: | abaron, acathrow, bazulay, iheim, jlibosva, mgoldboi, srevivo, yeylon, ykaul |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | v4.9.6 | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2012-03-11 16:02:02 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
Haim, why do you care about this verb? Is there any Engine flow that depends on it? (In reply to comment #2) > Haim, why do you care about this verb? Is there any Engine flow that depends on > it? Yes. engine use this verb as a part of Manual fence flow - which means, its broken. *** Bug 790331 has been marked as a duplicate of this bug. *** |
Description of problem: - spm host in non-responsive (just for the protocol, its no longer exists) - add new host to pool, host is connected to pool - fenceSpmStorage command is sent using new host as proxy - command fails apparently, the following function is described as @unsecured (vdsm/storage/sp.py), but it requires for host to change metadata, which is secured: 146 @unsecured 147 def forceFreeSpm(self): 148 # DO NOT USE, STUPID, HERE ONLY FOR BC 149 # TODO: SCSI Fence the 'lastOwner' 150 self.setMetaParams({PMDK_SPM_ID: -1, PMDK_LVER: -1}) 151 self.spmRole = SPM_FRE fix is to pass '__securityOverride=True' to function - since function needs to write to metadata (secured) but defined as unsecured. Thread-59::INFO::2012-02-06 08:38:29,604::logUtils::37::dispatcher::(wrapper) Run and protect: fenceSpmStorage(spUUID='84c4f901-72b6-4303-80ab-d03b5f95c771', lastOwner=1, lastLver='4', options=None) Thread-59::DEBUG::2012-02-06 08:38:29,605::resourceManager::175::ResourceManager.Request::(__init__) ResName=`Storage.84c4f901-72b6-4303-80ab-d03b5f95c771`ReqID=`fd22ac75-8f36-44e8-82c6-2b0353dab87d`::Request was made in '/usr/share/vds m/storage/hsm.py' line '2633' at 'fenceSpmStorage' Thread-59::DEBUG::2012-02-06 08:38:29,605::resourceManager::483::ResourceManager::(registerResource) Trying to register resource 'Storage.84c4f901-72b6-4303-80ab-d03b5f95c771' for lock type 'exclusive' Thread-59::DEBUG::2012-02-06 08:38:29,606::resourceManager::525::ResourceManager::(registerResource) Resource 'Storage.84c4f901-72b6-4303-80ab-d03b5f95c771' is free. Now locking as 'exclusive' (1 active user) Thread-59::DEBUG::2012-02-06 08:38:29,606::resourceManager::212::ResourceManager.Request::(grant) ResName=`Storage.84c4f901-72b6-4303-80ab-d03b5f95c771`ReqID=`fd22ac75-8f36-44e8-82c6-2b0353dab87d`::Granted request Thread-59::DEBUG::2012-02-06 08:38:29,607::task::819::TaskManager.Task::(resourceAcquired) Task=`55251ede-0db1-4980-8add-6d1f0fde3788`::_resourcesAcquired: Storage.84c4f901-72b6-4303-80ab-d03b5f95c771 (exclusive) Thread-59::DEBUG::2012-02-06 08:38:29,607::task::980::TaskManager.Task::(_decref) Task=`55251ede-0db1-4980-8add-6d1f0fde3788`::ref 1 aborting False Thread-59::ERROR::2012-02-06 08:38:29,607::task::855::TaskManager.Task::(_setError) Task=`55251ede-0db1-4980-8add-6d1f0fde3788`::Unexpected error Traceback (most recent call last): File "/usr/share/vdsm/storage/task.py", line 863, 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 2634, in fenceSpmStorage pool.forceFreeSpm() File "/usr/share/vdsm/storage/sp.py", line 150, in forceFreeSpm self.setMetaParams({PMDK_SPM_ID: -1, PMDK_LVER: -1}) File "/usr/share/vdsm/storage/securable.py", line 78, in wrapper raise SecureError() SecureError Thread-59::DEBUG::2012-02-06 08:38:29,653::task::874::TaskManager.Task::(_run) Task=`55251ede-0db1-4980-8add-6d1f0fde3788`::Task._run: 55251ede-0db1-4980-8add-6d1f0fde3788 ('84c4f901-72b6-4303-80ab-d03b5f95c771', 1, '4') {} failed - stopping task Thread-59::DEBUG::2012-02-06 08:38:29,654::task::1201::TaskManager.Task::(stop) Task=`55251ede-0db1-4980-8add-6d1f0fde3788`::stopping in state preparing (force False) Thread-59::DEBUG::2012-02-06 08:38:29,654::task::980::TaskManager.Task::(_decref) Task=`55251ede-0db1-4980-8add-6d1f0fde3788`::ref 1 aborting True Thread-59::INFO::2012-02-06 08:38:29,654::task::1159::TaskManager.Task::(prepare) Task=`55251ede-0db1-4980-8add-6d1f0fde3788`::aborting: Task is aborted: '' - code 100 Thread-59::DEBUG::2012-02-06 08:38:29,654::task::1164::TaskManager.Task::(prepare) Task=`55251ede-0db1-4980-8add-6d1f0fde3788`::Prepare: aborted: Thread-59::DEBUG::2012-02-06 08:38:29,654::task::980::TaskManager.Task::(_decref) Task=`55251ede-0db1-4980-8add-6d1f0fde3788`::ref 0 aborting True Thread-59::DEBUG::2012-02-06 08:38:29,655::task::915::TaskManager.Task::(_doAbort) Task=`55251ede-0db1-4980-8add-6d1f0fde3788`::Task._doAbort: force False Thread-59::DEBUG::2012-02-06 08:38:29,655::resourceManager::841::ResourceManager.Owner::(cancelAll) Owner.cancelAll requests {} Thread-59::DEBUG::2012-02-06 08:38:29,655::task::588::TaskManager.Task::(_updateState) Task=`55251ede-0db1-4980-8add-6d1f0fde3788`::moving from state preparing -> state aborting Thread-59::DEBUG::2012-02-06 08:38:29,655::task::537::TaskManager.Task::(__state_aborting) Task=`55251ede-0db1-4980-8add-6d1f0fde3788`::_aborting: recover policy none Thread-59::DEBUG::2012-02-06 08:38:29,656::task::588::TaskManager.Task::(_updateState) Task=`55251ede-0db1-4980-8add-6d1f0fde3788`::moving from state aborting -> state failed Thread-59::DEBUG::2012-02-06 08:38:29,656::resourceManager::806::ResourceManager.Owner::(releaseAll) Owner.releaseAll requests {} resources {'Storage.84c4f901-72b6-4303-80ab-d03b5f95c771': < ResourceRef 'Storage.84c4f901-72b6-4303-80ab-d03b5f95c771', isValid: 'True' obj: 'None'>} Thread-59::DEBUG::2012-02-06 08:38:29,656::resourceManager::841::ResourceManager.Owner::(cancelAll) Owner.cancelAll requests {} Thread-59::DEBUG::2012-02-06 08:38:29,656::resourceManager::535::ResourceManager::(releaseResource) Trying to release resource 'Storage.84c4f901-72b6-4303-80ab-d03b5f95c771' Thread-59::DEBUG::2012-02-06 08:38:29,657::resourceManager::550::ResourceManager::(releaseResource) Released resource 'Storage.84c4f901-72b6-4303-80ab-d03b5f95c771' (0 active users) Thread-59::DEBUG::2012-02-06 08:38:29,657::resourceManager::555::ResourceManager::(releaseResource) Resource 'Storage.84c4f901-72b6-4303-80ab-d03b5f95c771' is free, finding out if anyone is waiting for it. Thread-59::DEBUG::2012-02-06 08:38:29,657::resourceManager::562::ResourceManager::(releaseResource) No one is waiting for resource 'Storage.84c4f901-72b6-4303-80ab-d03b5f95c771', Clearing records. Thread-59::ERROR::2012-02-06 08:38:29,658::dispatcher::93::Storage.Dispatcher.Protect::(run) Traceback (most recent call last): File "/usr/share/vdsm/storage/dispatcher.py", line 85, in run result = ctask.prepare(self.func, *args, **kwargs) File "/usr/share/vdsm/storage/task.py", line 1166, in prepare raise self.error SecureError