Bug 186439 - Anaconda mishandles LVM LV names with -'s in them.
Summary: Anaconda mishandles LVM LV names with -'s in them.
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: anaconda
Version: 5
Hardware: All
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Peter Jones
QA Contact:
URL:
Whiteboard:
: 250409 407701 (view as bug list)
Depends On:
Blocks: FC6Target 430907
TreeView+ depends on / blocked
 
Reported: 2006-03-23 16:29 UTC by Eric Hopper
Modified: 2008-01-30 14:58 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2008-01-30 14:49:16 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)
partitions.py diff (1.45 KB, patch)
2007-03-27 12:18 UTC, Joel Andres Granados
no flags Details | Diff
patch trying to solve issue with "-" in lvm names (708 bytes, patch)
2007-03-27 16:12 UTC, Joel Andres Granados
no flags Details | Diff

Description Eric Hopper 2006-03-23 16:29:19 UTC
Description of problem:
Installing into an LV with a - in its name causes anaconda to crash with an
exception stating that it can't find the LV name.  For an LV named name1-name2
on a VG named 'VG', the name it states its looking for is
/dev/mapper/VG-name1-name2.  For LV names with -'s in them, the name in the
mapper directory will be VG-name1--name2.

Version-Release number of selected component (if applicable):
The version that shows up on the FC5 installation CD.

How reproducible:
Every time

Steps to Reproduce:
1.Create some LVs with -'s in their names
2.Try to install Fedora Core 5 with some partitions on those LVs
3.Watch Fedore Core 5 anaconda crash
  
Actual results:
Anaconda throws an exception

Expected results:
The installation proceeding normally

Additional info:

Comment 1 Jeremy Katz 2006-09-22 04:00:39 UTC
anaconda disallows a - in the LV or VG name, so this is only a problem for
preexisting ones.

Comment 2 Eric Hopper 2006-10-09 21:54:14 UTC
That means that Anaconda should be fixed to allow LV names with a '-' in them.  :-)

Comment 3 Joel Andres Granados 2007-03-16 18:15:15 UTC
For now the idea is to avoid crashes.  There are two possibilities:
To tell the user that the lv or vg name with the '-' character is not accepted.
Or to replace the character.

FIRST OPTION:
--- ../FC-D/kickstart.py	2007-03-08 19:43:45.000000000 +0100
+++ kickstart.py	2007-03-16 19:00:50.000000000 +0100
@@ -257,6 +257,9 @@
         elif (lvd.percent <= 0 or lvd.percent > 100) and not lvd.preexist:
             raise KickstartValueError, formatErrorMsg(self.lineno,
msg="Percentage must be between 0 and 100")
 
+        if "-" in lvd.name:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg="The '-'
character must not be used in logical volume names.")
+
         request = partRequests.LogicalVolumeRequestSpec(filesystem,
                                       format = lvd.format,
                                       mountpoint = lvd.mountpoint,
@@ -605,6 +608,9 @@
         if vgd.pesize not in lvm.getPossiblePhysicalExtents(floor=1024):
             raise KickstartValueError, formatErrorMsg(self.lineno, msg="Volume
group specified invalid pesize")
 
+        if "-" in vgd.vgname:
+            raise KickstartValueError, formatErrorMsg(self.lineno, msg="The '-'
character must not be used in volume group names.")
+
         # get a sort of hackish id
         uniqueID = self.handler.ksID
         self.handler.ksVGMapping[vgd.vgname] = uniqueID

SECOND OPTION:
--- ../FC-D/kickstart.py	2007-03-08 19:43:45.000000000 +0100
+++ kickstart.py	2007-03-16 19:07:40.000000000 +0100
@@ -257,6 +257,11 @@
         elif (lvd.percent <= 0 or lvd.percent > 100) and not lvd.preexist:
             raise KickstartValueError, formatErrorMsg(self.lineno,
msg="Percentage must be between 0 and 100")
 
+        if "-" in lvd.name:
+            #We can also change it and not fail.
+            lvd.name.replace("-","t") 
+
+
         request = partRequests.LogicalVolumeRequestSpec(filesystem,
                                       format = lvd.format,
                                       mountpoint = lvd.mountpoint,
@@ -610,6 +615,10 @@
         self.handler.ksVGMapping[vgd.vgname] = uniqueID
         self.handler.ksID += 1
             
+        if "-" in vgd.vgname:
+            #We can also change it and not fail.
+            vgd.vgname.replace("-","t") 
+
         request = partRequests.VolumeGroupRequestSpec(vgname = vgd.vgname,
                                                       physvols = pvs,
                                                       preexist = vgd.preexist,



Comment 4 Eric Hopper 2007-03-16 23:15:47 UTC
This is great, except I have LV names already that have -'s in them.  Right now
what I have to do is hand-edit the fstab file after installation to make them
show up in the right place.  I'd prefer not to have to do that.


Comment 5 Joel Andres Granados 2007-03-27 12:14:31 UTC
I had misunderstood the exact situation.  The mishandling of the LVM names
happens not only with new kickstart names but also can happen with inside the
partition gui with preexisting lvm structures.  With this in mind I propose
another patch that informs the user instead of spitting out an ugly trace back.
The problem is not fixed but anaconda does not die if this situation presents
itself. FYI Im working on FC7.
The diff is attached.


Comment 6 Joel Andres Granados 2007-03-27 12:18:54 UTC
Created attachment 151023 [details]
partitions.py diff

It doesn't solve the proble but it avoids an  ugly trace back when the
situation presents itself.

Comment 7 Joel Andres Granados 2007-03-27 16:12:06 UTC
Created attachment 151045 [details]
patch trying to solve issue with "-" in lvm names

It worked for all my test cases.  I tried to install using kickstart, there
seemed to be no problem.  I tried with kickstart and the installation ended
smoothly as well.  I tested for logical volumes and volume groups that had ht
"-" character in there names.

Comment 8 Chris Lumens 2007-08-15 15:27:51 UTC
*** Bug 250409 has been marked as a duplicate of this bug. ***

Comment 9 cvcrckt 2007-10-25 14:37:32 UTC
On a related note: the lv-config GUI in anaconda does not allow - in the name, 
system-config-lvm and lvcreate do.  All of these should match so that this isn't
a problem later.  We have somebody who creates a standard naming scheme for our
servers based on what he sets up with lvcreate... then we can't conform to that
naming scheme using anaconda's lvm configurator.

Comment 10 Martin Sivák 2008-01-30 14:18:44 UTC
*** Bug 407701 has been marked as a duplicate of this bug. ***


Note You need to log in before you can comment on or make changes to this bug.