Bug 432362

Summary: Traceback from isys.py with dmraid
Product: [Fedora] Fedora Reporter: Andy Wingo <wingo>
Component: anacondaAssignee: Peter Jones <pjones>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: low    
Version: rawhideCC: dcantrell, dzrudy, erik-fedora, henk.spaan, kwizart, linux, matt.castelein, ortizsantini
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2008-04-08 13:47:29 EDT Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On:    
Bug Blocks: 235706    
Attachments:
Description Flags
Anaconda crash traceback
none
Traceback in anaconda-11.4.0.61-1
none
Anaconda debug log none

Description Andy Wingo 2008-02-11 11:02:13 EST
Right after choosing my keyboard (US english), anaconda had a fatal error. PDB
says that isys.py:494 there is an error that RaidSet instances have no __getitem__.

Fatal, can't go on any farther than that :(
Comment 1 Henk Spaan 2008-02-20 10:56:37 EST
I got the same thing, but I wrote down the stacktrace (as I was not able to
upload it to a remote site).

The problem occurs when a RaidSet is present as can be seen in the stacktrace (I
copied another stacktrace and filled it out).

I got a fakeraid controller, ICH9R, but I guess the bug is not chipset specific.  

The stacktrace:
anaconda 11.4.0.28 exception report
Traceback (most recent call first):
  File "/usr/lib/anaconda/isys.py", line 494, in hardDriveDict
    ret[item] = dict[item]['description']
  File "/usr/lib/anaconda/partedUtils.py", line 841, in driveList
    drives = isys.hardDriveDict().keys()
  File "/usr/lib/anaconda/partedUtils.py", line 615, in startDmRaid
    (self.driveList(), ))
...

AttributeError: RaidSet instance has no attribute '__getitem__'

Local variables in innermost frame:
item: mapper/isw_cjabddijaa_Spin500Raid1V1
dict: {'mapper/isw_cjabddijaa_Spin500Raid1V1' : <block.device.RaidSet instance
at 0x...., [second raid set ...], [dbus items ...]>
Comment 2 Henk Spaan 2008-02-21 03:02:07 EST
CC me
Comment 3 Chris Adams 2008-03-22 15:45:15 EDT
*** Bug 437162 has been marked as a duplicate of this bug. ***
Comment 4 Chris Adams 2008-03-23 23:13:54 EDT
Digging around a little (and maybe I'm missing something), but I don't see that
the description set in hardDriveDict is used anywhere.  I changed it like:

-        ret[item] = dict[item]['description']
+       try:
+           ret[item] = dict[item]['description']
+       except:
+           ret[item] = "no description"

and anaconda appeared to find the dmraid drives okay.

The description is copied in partedUtils.py drivesByName, but I don't see that
it is called anywhere.  If the description really isn't used, maybe just drop
trying to copy it?
Comment 5 Dawid Zamirski 2008-03-25 22:57:10 EDT
Created attachment 299091 [details]
Anaconda crash traceback

I've run on the same problem today when trying to install Fedora 9 Beta. I
tried installing from both full install DVD and Live DVD.
Comment 6 Jeremy Katz 2008-03-27 15:59:14 EDT
Fixed in git
Comment 7 Jeremy Katz 2008-03-28 09:57:03 EDT
*** Bug 439367 has been marked as a duplicate of this bug. ***
Comment 8 Dawid Zamirski 2008-03-30 01:48:03 EDT
Created attachment 299612 [details]
Traceback in anaconda-11.4.0.61-1

Jeremy,

I'm still getting the traceback (attached). I've tested with the released
rawhide 20080328 snaphot and also reproduced with Fedora 9 Beta Live after
updating anacona via yum to version 11.4.0.61-1 that's available in rawhide as
of now.
Comment 9 Chris Adams 2008-03-30 14:57:25 EDT
The change in git adds an empty description.  However, the problem isn't a
missing description; it is that a RaidSet object doesn't have __getitem__ but
hardDriveDict() in isys.py tries to access it that way.  Either the RaidSet
object (I believe from python-pyblock) needs to be updated to add __getitem__ or
isys.py needs to be changed to not try to access it.
Comment 10 Jesse Keating 2008-04-01 17:25:54 EDT
Confirmed, this still happens in rawhide 04/01.  Going to get some attention on
it since we have a box in the office that can reproduce.
Comment 11 Daniel Rindt 2008-04-02 05:59:39 EDT
Created attachment 300036 [details]
Anaconda debug log
Comment 12 Jesse Keating 2008-04-02 07:48:25 EDT
Changing the subject to reflect what the bug actually is.  This should be fixed
with the work Peter Jones did last night and was built into anaconda this
morning.  It missed rawhide though, so will try later.
Comment 13 Jesse Keating 2008-04-08 13:47:29 EDT
This is fixed.  dmraid installs now boot.