[linux-lvm] guruplug 2.6.37 lvm2 problem

Jason lvm at lakedaemon.net
Thu Jan 27 18:25:11 UTC 2011


All,

I have a small problem that's I've been beating my head against for two 
days.

I've installed debian onto an sdcard according to [1].  This required a 
new U-boot [2].  For grins, I chose encrypted LVM.  It works fine with 
the 2.6.33.3flipflip kernel [3].  However, I'm trying to get 2.6.37 
vanilla to work.

I think I'm almost there except that lvm2 segfaults every time right 
after I enter the password.  So, I jumped into initramfs and ran 'lvm 
pvscan -v -v -v -v' for both kernels.  Here's the output:

### 'lvm pvscan -v -v -v -v' on 2.6.33.3flipflip #######################
(initramfs) lvm pvscan -v -v -v -v
#lvmcmdline.c:1035         Processing: pvscan -v -v -v -v
#lvmcmdline.c:1038         O_DIRECT will be used
#config/config.c:987       Setting global/locking_type to 1
#config/config.c:987       Setting global/wait_for_locks to 1
#locking/locking.c:240       File-based locking selected.
#config/config.c:964       Setting global/locking_dir to /var/lock/lvm
#locking/file_locking.c:235       Locking /var/lock/lvm/P_global WB
#locking/file_locking.c:141         _do_flock /var/lock/lvm/P_global:aux WB
#locking/file_locking.c:141         _do_flock /var/lock/lvm/P_global WB
#locking/file_locking.c:51         _undo_flock /var/lock/lvm/P_global:aux
#filters/filter-persistent.c:56     Wiping cache of LVM-capable devices
#device/dev-cache.c:247         /dev/block/1:0: Already in device cache

...snip...

#device/dev-io.c:487         Opened /dev/dm-0 RO
#device/dev-io.c:260       /dev/dm-0: size is 30820344 sectors
#device/dev-io.c:533         Closed /dev/dm-0
#device/dev-io.c:260       /dev/dm-0: size is 30820344 sectors
#device/dev-io.c:487         Opened /dev/dm-0 RO O_DIRECT
#device/dev-io.c:134         /dev/dm-0: block size is 4096 bytes
#device/dev-io.c:533         Closed /dev/dm-0
#filters/filter-composite.c:31         Using /dev/dm-0
#device/dev-io.c:487         Opened /dev/dm-0 RO O_DIRECT
#device/dev-io.c:134         /dev/dm-0: block size is 4096 bytes
#label/label.c:160       /dev/dm-0: lvm2 label detected
#cache/lvmcache.c:1136         lvmcache: /dev/dm-0: now in VG 
#orphans_lvm2 (#orphans_lvm2)
#format_text/format-text.c:1137         /dev/dm-0: Found metadata at 
6656 size 1158 (in area at 4096 size 192512) for debian (UUID_WAS_HERE)
#cache/lvmcache.c:1136         lvmcache: /dev/dm-0: now in VG debian 
with 1 mdas
#cache/lvmcache.c:923         lvmcache: /dev/dm-0: setting debian VGID 
to UUID_WAS_HERE
#cache/lvmcache.c:1173         lvmcache: /dev/dm-0: VG debian: Set 
creation host to debian.
#device/dev-io.c:533         Closed /dev/dm-0
#device/dev-io.c:487         Opened /dev/ram1 RO

...snip...

#label/label.c:270         Using cached label for /dev/dm-0
#device/dev-io.c:487         Opened /dev/dm-0 RO O_DIRECT
#device/dev-io.c:134         /dev/dm-0: block size is 4096 bytes
#label/label.c:270         Using cached label for /dev/dm-0
#format_text/format-text.c:498         Read debian metadata (3) from 
/dev/dm-0 at 6656 size 1158
#device/dev-io.c:533         Closed /dev/dm-0
#metadata/pv_manip.c:296         /dev/dm-0 0:      0   3592: root(0:0)
#metadata/pv_manip.c:296         /dev/dm-0 1:   3592    170: swap_1(0:0)
   PV /dev/dm-0   VG debian   lvm2 [14.70 GiB / 0    free]
   Total: 1 [14.70 GiB] / in use: 1 [14.70 GiB] / in no VG: 0 [0   ]
#locking/file_locking.c:74       Unlocking /var/lock/lvm/P_global
#locking/file_locking.c:51         _undo_flock /var/lock/lvm/P_global
(initramfs)
########################################################################

And then the failure:

### 'lvm pvscan -v -v -v -v' on 2.6.37 #################################
(initramfs) lvm pvscan -v -v -v -v
#lvmcmdline.c:1035         Processing: pvscan -v -v -v -v
#lvmcmdline.c:1038         O_DIRECT will be used
#config/config.c:987       Setting global/locking_type to 1
#config/config.c:987       Setting global/wait_for_locks to 1
#locking/locking.c:240       File-based locking selected.
#config/config.c:964       Setting global/locking_dir to /var/lock/lvm
#locking/file_locking.c:235       Locking /var/lock/lvm/P_global WB
#locking/file_locking.c:141         _do_flock /var/lock/lvm/P_global:aux WB
#locking/file_locking.c:141         _do_flock /var/lock/lvm/P_global WB
#locking/file_locking.c:51         _undo_flock /var/lock/lvm/P_global:aux
#filters/filter-persistent.c:56     Wiping cache of LVM-capable devices
#device/dev-cache.c:262         /dev/block/253:0: Added to device cache

...snip...

#pvscan.c:134     Walking through all physical volumes
#device/dev-io.c:443         /dev/sda: open failed: No medium found
#filters/filter.c:143         /dev/sda: Skipping: open failed
#device/dev-io.c:487         Opened /dev/dm-0 RO
#device/dev-io.c:260       /dev/dm-0: size is 30820344 sectors
#device/dev-io.c:533         Closed /dev/dm-0
#device/dev-io.c:260       /dev/dm-0: size is 30820344 sectors
#device/dev-io.c:487         Opened /dev/dm-0 RO O_DIRECT
#device/dev-io.c:134         /dev/dm-0: block size is 4096 bytes
#device/dev-io.c:533         Closed /dev/dm-0
#filters/filter-composite.c:31         Using /dev/dm-0
#device/dev-io.c:487         Opened /dev/dm-0 RO O_DIRECT
#device/dev-io.c:134         /dev/dm-0: block size is 4096 bytes
Segmentation fault
(initramfs)
########################################################################

/dev/dm-0 is the decrypted device containing the LVM.

### Versions ###########################################################
(initramfs) lvm version
   LVM version:     2.02.66(2) (2010-05-20)
   Library version: 1.02.48 (2010-05-20)
   Driver version:  4.17.0
(initramfs)
########################################################################

Based on a Gentoo bug [4] and a Debian bug [5], I'm not the first to 
encounter this.  I have tried all combinations of 
CONFIG_SYSFS_DEPRECATED and CONFIG_SYSFS_DEPRECATED_V2, without luck. 
I've also tried --sysinit and --ignorelockingfailure with similar results.

Tracing the lvm2 code, it looks like the segfault may lie in 
lib/label/label.c:107 _find_labeller().  Probably after line 120, 
dev_read() and before line 160, log_very_verbose()...

As I'm fairly new to embedded debian, what's the easiest path to fix 
this?  I'm running out of ideas.  I'd _really_ prefer to keep 2.6.37, 
it's a bragging rights thing...  ;-)

Does anyone know where exactly the error is coming from?  Is there a 
missing sysfs entry?  My desktop (Ubuntu 10.04) runs 2.6.37 fine, but 
with an older lvm2 (2.02.54(1), lib 1.02.39, driver 4.18.0).  Getting a 
coredump out of the initrd is proving difficult...

thanks for any input,

Jason.


[1] 
http://bzed.de/posts/2010/05/installing_debian_on_the_guruplug_server_plus/
[2] http://oinkzwurgl.org/guruplug_uboot
[3] http://oinkzwurgl.org/guruplug_kernel
[4] http://bugs.gentoo.org/show_bug.cgi?id=292833
[5] 
http://www.mail-archive.com/debian-bugs-rc@lists.debian.org/msg221947.html




More information about the linux-lvm mailing list