Previously, attempting to change the host designated as the storage pool master failed under certain conditions. This was caused by a change in the logic used to handle storage pool metadata. Now, this logic has been revised so that it is possible to change the storage pool master without issue.
DescriptionFederico Simoncelli
2014-05-09 13:41:01 UTC
Description of problem:
One step of the masterMigrate negative flow fails on setDomainRegularRole:
Thread-75::ERROR::2014-05-09 09:30:28,383::task::866::TaskManager.Task::(_setError) Task=`a31b454e-70fc-4d70-8939-a22f28d0a99c`::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 1199, in deactivateStorageDomain
pool.deactivateSD(sdUUID, msdUUID, masterVersion)
File "/usr/share/vdsm/storage/securable.py", line 77, in wrapper
return method(self, *args, **kwargs)
File "/usr/share/vdsm/storage/sp.py", line 1098, in deactivateSD
self.masterMigrate(sdUUID, newMsdUUID, masterVersion)
File "/usr/share/vdsm/storage/securable.py", line 77, in wrapper
return method(self, *args, **kwargs)
File "/usr/share/vdsm/storage/sp.py", line 830, in masterMigrate
self.setDomainRegularRole(newmsd)
AttributeError: 'StoragePool' object has no attribute 'setDomainRegularRole'
Version-Release number of selected component (if applicable):
vdsm-4.14.7-1.el6ev
How reproducible:
No reproducer known. It can be triggered forcing a failure in the masterMigrate method.
Comment 1Federico Simoncelli
2014-05-12 12:58:59 UTC
Since there's no reproducer known either you artificially raise an exception in masterMigrate (code change) or you just test that the positive flow is not affected.
(In reply to Federico Simoncelli from comment #1)
> Since there's no reproducer known either you artificially raise an exception
> in masterMigrate (code change) or you just test that the positive flow is
> not affected.
I tested the submitted patch both ways.
Tried to test it according to comment #1 by doing reconstruct master and by Nir suggestion of inserting a 'raise exception' line into sp.py and did reconstruct master.
Reconstruct succeeded in both cases, moving to VERIFIED.
Fede, please confirm my test.
Verified using av9.1
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-0504.html
Description of problem: One step of the masterMigrate negative flow fails on setDomainRegularRole: Thread-75::ERROR::2014-05-09 09:30:28,383::task::866::TaskManager.Task::(_setError) Task=`a31b454e-70fc-4d70-8939-a22f28d0a99c`::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 1199, in deactivateStorageDomain pool.deactivateSD(sdUUID, msdUUID, masterVersion) File "/usr/share/vdsm/storage/securable.py", line 77, in wrapper return method(self, *args, **kwargs) File "/usr/share/vdsm/storage/sp.py", line 1098, in deactivateSD self.masterMigrate(sdUUID, newMsdUUID, masterVersion) File "/usr/share/vdsm/storage/securable.py", line 77, in wrapper return method(self, *args, **kwargs) File "/usr/share/vdsm/storage/sp.py", line 830, in masterMigrate self.setDomainRegularRole(newmsd) AttributeError: 'StoragePool' object has no attribute 'setDomainRegularRole' Version-Release number of selected component (if applicable): vdsm-4.14.7-1.el6ev How reproducible: No reproducer known. It can be triggered forcing a failure in the masterMigrate method.