Skip to contentSkip to conversation

s-c-l crashes if LV mirror was created with --corelog

PATCH New David Robinson 1 participant 1 message Aug 22, 2007

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 s-c-l crashes if LV mirror was created with --corelog

system-config-lvm crashes if there are mirrored logical volumes created with --corelog (BZ 229234). The patch below corrects the problem.

lvm_model.py renamed from lvm_model.py.orig +4 -3
@@ -572,9 +572,10 @@
            if lv.is_mirrored():
              # replace tmp lvs with real one
              # log
-            log_lv = vg.get_lvs()[lv.get_mirror_log()]
-            vg.get_lvs().pop(log_lv.get_name()) # remove log_lv from vg
-            lv.set_mirror_log(log_lv)
+            if lv.get_mirror_log():
+              log_lv = vg.get_lvs()[lv.get_mirror_log()]
+              vg.get_lvs().pop(log_lv.get_name()) # remove log_lv from vg
+              lv.set_mirror_log(log_lv)
              # images
              segment = lv.get_segments()[0]
              images_tmp = segment.get_images()[:] # copy
renderer.py renamed from renderer.py.orig +0 -4
@@ -470,12 +470,13 @@
              # set up mirroring log
              if lv.is_mirrored():
                  log_lv = lv.get_mirror_log()
-                for seg2 in log_lv.get_segments():
-                    # log should have linear mapping only
-                    extent = seg2.get_extent_block()
-                    subcyl = Subcylinder(self.lv_cyl_gen, 1, 0, False, 

extent.get_start_size()[1])
- lv_cyls_dir[extent] = subcyl
- cyl.children.append(subcyl)
+ if log_lv:
+ for seg2 in log_lv.get_segments():

+                       # log should have linear mapping only
+                       extent = seg2.get_extent_block()
+                       subcyl = Subcylinder(self.lv_cyl_gen, 1, 0, 

False, extent.get_start_size()[1])
+ lv_cyls_dir[extent] = subcyl
+ cyl.children.append(subcyl)

              # set up helper display
              cyl.add_object(CYL_ID_VOLUME, lv)