mirror of
git://sourceware.org/git/lvm2.git
synced 2025-01-17 06:04:23 +03:00
lvmdbusd: Handle missing key in get_key
When we sort the LVs, we can stumble on a missing key, protect against this as well. Seen in error injection testing: Traceback (most recent call last): File "/home/tasleson/projects/lvm2/daemons/lvmdbusd/fetch.py", line 198, in update_thread num_changes = load(*_load_args(queued_requests)) File "/home/tasleson/projects/lvm2/daemons/lvmdbusd/fetch.py", line 83, in load rc = MThreadRunner(_main_thread_load, refresh, emit_signal).done() File "/home/tasleson/projects/lvm2/daemons/lvmdbusd/utils.py", line 726, in done raise self.exception File "/home/tasleson/projects/lvm2/daemons/lvmdbusd/utils.py", line 732, in _run self.rc = self.f(*self.args) File "/home/tasleson/projects/lvm2/daemons/lvmdbusd/fetch.py", line 40, in _main_thread_load (lv_changes, remove) = load_lvs( File "/home/tasleson/projects/lvm2/daemons/lvmdbusd/lv.py", line 148, in load_lvs return common( File "/home/tasleson/projects/lvm2/daemons/lvmdbusd/loader.py", line 37, in common objects = retrieve(search_keys, cache_refresh=False) File "/home/tasleson/projects/lvm2/daemons/lvmdbusd/lv.py", line 72, in lvs_state_retrieve lvs = sorted(cfg.db.fetch_lvs(selection), key=get_key) File "/home/tasleson/projects/lvm2/daemons/lvmdbusd/lv.py", line 35, in get_key pool = i['pool_lv'] KeyError: 'pool_lv'
This commit is contained in:
parent
3d854b39bd
commit
1949afa24b
@ -65,13 +65,13 @@ def lvs_state_retrieve(selection, cache_refresh=True):
|
||||
if cache_refresh:
|
||||
cfg.db.refresh()
|
||||
|
||||
# When building up the model, it's best to process LVs with the least
|
||||
# dependencies to those that are dependant upon other LVs. Otherwise, when
|
||||
# we are trying to gather information we could be in a position where we
|
||||
# don't have information available yet.
|
||||
lvs = sorted(cfg.db.fetch_lvs(selection), key=get_key)
|
||||
|
||||
try:
|
||||
# When building up the model, it's best to process LVs with the least
|
||||
# dependencies to those that are dependant upon other LVs. Otherwise, when
|
||||
# we are trying to gather information we could be in a position where we
|
||||
# don't have information available yet.
|
||||
lvs = sorted(cfg.db.fetch_lvs(selection), key=get_key)
|
||||
|
||||
for l in lvs:
|
||||
if cfg.vdo_support:
|
||||
rc.append(LvStateVdo(
|
||||
|
Loading…
x
Reference in New Issue
Block a user