mirror of
git://sourceware.org/git/lvm2.git
synced 2024-12-22 17:35:59 +03:00
f70d97b916
When we are walking the new lvm state comparing it to the old state we can run into an issue where we remove a VG that is no longer present from the object manager, but is still needed by LVs that are left to be processed. When we try to process existing LVs to see if their state needs to be updated, or if they need to be removed, we need to be able to reference the VG that was associated with it. However, if it's been removed from the object manager we fail to find it which results in: Traceback (most recent call last): File "/usr/lib/python3.6/site-packages/lvmdbusd/utils.py", line 666, in _run self.rc = self.f(*self.args) File "/usr/lib/python3.6/site-packages/lvmdbusd/fetch.py", line 36, in _main_thread_load cache_refresh=False)[1] File "/usr/lib/python3.6/site-packages/lvmdbusd/lv.py", line 146, in load_lvs lv_name, object_path, refresh, emit_signal, cache_refresh) File "/usr/lib/python3.6/site-packages/lvmdbusd/loader.py", line 68, in common num_changes += dbus_object.refresh(object_state=o) File "/usr/lib/python3.6/site-packages/lvmdbusd/automatedproperties.py", line 160, in refresh search = self.lvm_id File "/usr/lib/python3.6/site-packages/lvmdbusd/lv.py", line 483, in lvm_id return self.state.lvm_id File "/usr/lib/python3.6/site-packages/lvmdbusd/lv.py", line 173, in lvm_id return "%s/%s" % (self.vg_name_lookup(), self.Name) File "/usr/lib/python3.6/site-packages/lvmdbusd/lv.py", line 169, in vg_name_lookup return cfg.om.get_object_by_path(self.Vg).Name Instead of removing objects from the object manager immediately, we will keep them in a list and remove them once we have processed all of the state. Ref: https://bugzilla.redhat.com/show_bug.cgi?id=1968752 |
||
---|---|---|
.. | ||
cmirrord | ||
dmeventd | ||
lvmdbusd | ||
lvmlockd | ||
lvmpolld | ||
Makefile.in |