Bug 186439 - Anaconda mishandles LVM LV names with -'s in them.
Anaconda mishandles LVM LV names with -'s in them.
Status: CLOSED RAWHIDE
Product: Fedora
Classification: Fedora
Component: anaconda (Show other bugs)
5
All Linux
medium Severity medium
: ---
: ---
Assigned To: Peter Jones
:
: 250409 407701 (view as bug list)
Depends On:
Blocks: FC6Target 430907
  Show dependency treegraph
 
Reported: 2006-03-23 11:29 EST by Eric Hopper
Modified: 2008-01-30 09:58 EST (History)
5 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2008-01-30 09:49:16 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


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

  None (edit)
Description Eric Hopper 2006-03-23 11:29:19 EST
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 00:00:39 EDT
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 17:54:14 EDT
That means that Anaconda should be fixed to allow LV names with a '-' in them.  :-)
Comment 3 Joel Andres Granados 2007-03-16 14:15:15 EDT
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 19:15:47 EDT
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 08:14:31 EDT
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 08:18:54 EDT
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 12:12:06 EDT
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 11:27:51 EDT
*** Bug 250409 has been marked as a duplicate of this bug. ***
Comment 9 cvcrckt 2007-10-25 10:37:32 EDT
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 09:18:44 EST
*** 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.