Bug 684725

Summary: 2.2.6.1 - If POOL_DESCRIPTION param is missing from master MD, SP connect fails
Product: Red Hat Enterprise Linux 5 Reporter: Dan Yasny <dyasny>
Component: vdsm22Assignee: Dan Kenigsberg <danken>
Status: CLOSED ERRATA QA Contact: yeylon <yeylon>
Severity: urgent Docs Contact:
Priority: urgent    
Version: 5.6CC: abaron, acathrow, bazulay, cpelland, danken, dpaikov, ewarszaw, iheim, lyarwood, plyons, srevivo, ykaul
Target Milestone: rcKeywords: ZStream
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
In certain cases, the "POOL_DESCRIPTION" field was removed from the storage domain metadata. As a result, storage domains with a missing "POOL_DESCRIPTION" field failed to connect to a storage pool. With this update, an empty description is used in the "POOL_DESCRIPTION" field when the field is undefined, thus, no longer causing failures to connect.
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-02-21 04:52:32 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 684801    

Description Dan Yasny 2011-03-14 10:52:46 UTC
Description of problem:
after update to 2.2.6, hosts fail to connect to storage pool if POOL_DESCRIPTION field is missing from metadata


Version-Release number of selected component (if applicable):
2.2.6

vdsm22-4.5-63.21.el5_6

How reproducible:
always

Steps to Reproduce:
1.upgrade host to vdsm22-4.5-63.21.el5_6
2.activate
3.
  
Actual results:
Thread-73::ERROR::2011-03-10 11:34:20,584::sp::1149::irs::Pool metadata error
Thread-73::ERROR::2011-03-10 11:34:20,585::misc::66::irs::Error storage pool action: ('303454af-9d07-4db1-a91a-5293665d4940',)
Thread-73::ERROR::2011-03-10 11:34:20,607::misc::67::irs::Traceback (most recent call last):
  File "/usr/share/vdsm/storage/task.py", line 978, in _run
    return fn(*args, **kargs)
  File "/usr/share/vdsm/storage/hsm.py", line 1094, in public_getStoragePoolInfo
    return self.getPool(spUUID).getInfo()
  File "/usr/share/vdsm/storage/sp.py", line 1150, in getInfo
    raise se.StoragePoolActionError(self.spUUID)
StoragePoolActionError: Error storage pool action: ('303454af-9d07-4db1-a91a-5293665d4940',)

Expected results:
connect SP even if field is missing
produce an error describing which field is missing
if an unused field is missing, raise a WARN, and don't fail the entire process


Additional info:
downgrading host to 2.2.5 fixes issue

After checking the actual code, it seems like in 2.2.6 in sp.py the getInfo is using try/except to parse SP metadata, and that fails on  POOL_DESCRIPTION

in 2.2.5 if/elif was used, and if  POOL_DESCRIPTION was missing, the parser would just continue.

We could not find why the field is missing though, but
1.

Comment 8 Daniel Paikov 2011-03-14 16:23:02 UTC
Checked on vdsm22-4.5-63.23. Both connectStoragePool and getStoragePoolInfo are successful, and I am able to get SPM.

Comment 9 Dan Kenigsberg 2011-03-14 16:36:50 UTC
    Technical note added. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    New Contents:
On certain occasions pool_description field is removed from storage domain metadata. This problem will be dealt with in bug 676582. Storage domains with missing pool_description used to fail connection to storage pool. This fix returns an empty description instead of failing the operation.

Comment 10 Martin Prpič 2011-03-16 15:52:57 UTC
    Technical note updated. If any revisions are required, please edit the "Technical Notes" field
    accordingly. All revisions will be proofread by the Engineering Content Services team.
    
    Diffed Contents:
@@ -1 +1 @@
-On certain occasions pool_description field is removed from storage domain metadata. This problem will be dealt with in bug 676582. Storage domains with missing pool_description used to fail connection to storage pool. This fix returns an empty description instead of failing the operation.+In certain cases, the "POOL_DESCRIPTION" field was removed from the storage domain metadata. As a result, storage domains with a missing "POOL_DESCRIPTION" field failed to connect to a storage pool. With this update, an empty description is used in the "POOL_DESCRIPTION" field when the field is undefined, thus, no longer causing failures to connect.

Comment 11 errata-xmlrpc 2012-02-21 04:52:32 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-2012-0169.html