[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

EVMS + kernel 2.6.17

Dear community,

Based on my experiences with the current testing branch (etch) I want to report the following bug:

I'm posting this issue on this mailinglist, since I have no clue which package (EVMS, kernel, devicemapper userspace library, ...) is causing the misbehaviour ...

All I can say, that I've seen working EVMS tools with 2.6.15 kernels. I can also say that recent ubuntu, gentoo kernels or rather distributions are also involved... ;-(

With the scriptlet attached below it is possible to provoke a "crash" of the EVMS-engine.

Basically this script creates a EVMS volume based on LVM2 region (lv) in a LVM2 container (vg), then mounts it. It uses 2 loop-devices for that purpose. After that another EVMS-volume is created which represents a snapshot of the LVM2 volume. removing the snapshot causes the EVMS engine to spit out "floating point exceptions" on consequent calls of various frontend tools (evms, evmsn,...) rendering the system "useless".

As stated above the described behaviour can be (re)produced on a recent (as of the 24th October) debian-testing system with 2.6.17 kernel.

Any hints where to direct a bug-report to, are highly appreciated.

  Clemens Ender

PS: please only run this script in a testing environment, after having studied it !

EVMS_CMD="evms -f /dev/stdin"


mkdir -p ${VOL_MOUNT_POINT}
mkdir -p ${SNAP_MOUNT_POINT}
dd if=/dev/zero of=hd1image.dump bs=1024 count=$((50*1024))
dd if=/dev/zero of=hd2image.dump bs=1024 count=$((50*1024))
( echo "w" | fdisk hd1image.dump ) > /dev/null 2>&1
( echo "w" | fdisk hd2image.dump ) > /dev/null 2>&1
losetup /dev/loop1 hd1image.dump
losetup /dev/loop2 hd2image.dump

# create a EVMS-volume based on a LVM2 container and LVM2 region
echo "c:s, loop1_freespace1, size=40MB" | $EVMS_CMD
echo "c:s, loop2_freespace1, size=40MB" | $EVMS_CMD
echo "c:c, LVM2={name=vg1}, loop11, loop21" | $EVMS_CMD
echo "c:r, LVM2={name=lv1, size=40MB}, lvm2/vg1/Freespace" | $EVMS_CMD
echo "c:v, lvm2/vg1/lv1, Name=vol1" | $EVMS_CMD

# create a LVM2 region for the snapshot
echo "c:r, LVM2={name=snap_lv1, size=20MB}, lvm2/vg1/Freespace" | $EVMS_CMD

# create ext2 filesystem on the EVMS volume and mount it
mke2fs -F /dev/evms/vol1
mount /dev/evms/vol1 ${VOL_MOUNT_POINT}

# create a snapshot volume
echo "c:o, Snapshot={original=/dev/evms/vol1, snapshot=snap}, lvm2/ vg1/snap_lv1" | $EVMS_CMD
echo "c:v, snap, Name=snap_vol1" | $EVMS_CMD

# mount the snapshot
mount /dev/evms/snap_vol1 ${SNAP_MOUNT_POINT}

# umount, remove the snapshot volume (recursively)
echo "dr: /dev/evms/snap_vol1" | $EVMS_CMD

# the EVMS-engine is now messed up: "floating point exception" upon start of EVMS-tools
echo "q:v" | $EVMS_CMD

Reply to: