Bug 787594 - [ovirt] [vdsm] fenceSpmStorage fails on secure Error (manual fence is broken)
Summary: [ovirt] [vdsm] fenceSpmStorage fails on secure Error (manual fence is broken)
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: oVirt
Classification: Retired
Component: vdsm
Version: unspecified
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
: ---
Assignee: Dan Kenigsberg
QA Contact: yeylon@redhat.com
URL:
Whiteboard:
: 790331 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2012-02-06 09:22 UTC by Haim
Modified: 2016-04-18 06:43 UTC (History)
9 users (show)

Fixed In Version: v4.9.6
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2012-03-11 16:02:02 UTC
oVirt Team: ---


Attachments (Terms of Use)

Description Haim 2012-02-06 09:22:22 UTC
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

Comment 1 Haim 2012-02-06 09:28:16 UTC
http://gerrit.ovirt.org/1642

Comment 2 Dan Kenigsberg 2012-02-06 14:48:03 UTC
Haim, why do you care about this verb? Is there any Engine flow that depends on it?

Comment 3 Haim 2012-02-06 15:17:12 UTC
(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.

Comment 4 Jakub Libosvar 2012-02-14 10:01:19 UTC
*** Bug 790331 has been marked as a duplicate of this bug. ***


Note You need to log in before you can comment on or make changes to this bug.