Red Hat Bugzilla – Bug 497407
IOError: [Errno 21] Is a directory
Last modified: 2013-09-02 02:35:18 EDT
The following was filed automatically by anaconda:
anaconda 22.214.171.124 exception report
Traceback (most recent call first):
File "/usr/lib/anaconda/storage/udev.py", line 92, in udev_get_block_device
entry = open(db_path).read()
File "/usr/lib/anaconda/storage/deviceaction.py", line 277, in execute
info = udev_get_block_device("/sys%s" % self.device.sysfsPath)
File "/usr/lib/anaconda/storage/devicetree.py", line 659, in processActions
File "/usr/lib/anaconda/storage/__init__.py", line 234, in doIt
File "/usr/lib/anaconda/packages.py", line 117, in turnOnFilesystems
IOError: [Errno 21] Is a directory
Created attachment 340992 [details]
Attached traceback automatically from anaconda.
Steps to reproduce
* Perform a text-mode raid6 kickstart install on a KVM/x86_64 guest
The cause is that md device was in active-idle state when we were updating its sysfs path attribute. We got empty string for path because the device did not have device.status == True, which for md device means being in state active or clean. According to md.txt I think that we can consider active-idle state as device.status == True ("the device is open and ready for use") too.
I can't reproduce the bug, James, can you please reproduce and test if this
(updates against version .47) fixes it?
Greetings Radek, I'm retesting the test I was running when encountering this bug, but am currently not seeing the issue. I am retesting using the latest anaconda in rawhide (126.96.36.199).
Given your analysis, I believe the error condition is still present, however I might not be reliably reproducing the failure.
I'll continue testing and update should I reproduce the failure.
Thanks for testing, I think being in active-idle state can be a condition quite hard to meet or reproduce. From md.txt:
like active, but no writes have been seen for a while (safe_mode_delay).
Unfortunately this doesn't give me any hint.
I prepared updates image for 188.8.131.52:
The images contain this patch:
diff --git a/storage/devices.py b/storage/devices.py
index c6fbdcc..b64c486 100644
@@ -2325,7 +2325,7 @@ class MDRaidArrayDevice(StorageDevice):
if os.access(state_file, os.R_OK):
state = open(state_file).read().strip()
log.debug("%s state is %s" % (self.name, state))
- if state in ("clean", "active"):
+ if state in ("clean", "active", "active-idle"):
status = True
Radek, yesterday I tested anaconda-184.108.40.206 (without the updates image) for the following cmdline-mode kickstart tests ...
1) uninitialized disk (clearpart+zerombr+autopart)
I repeated this several times on multiple systems and was *not* able to reproduce the original condition. Should I repeat the tests now using your updates.img?
Or do you feel confident in review of this patch that it can be applied as is?
I will send the patch for review on anaconda-devel-list. I am not md expert by far so I am not as sure as I'd like to be that it will not break anything. Also I am not sure if testing with updates is worth spending your time when we can't reproduce, seems like active-idle state occurs only rarely in our tests. Maybe I'd ask you for testing with updates after getting feedback in review.
After discussion with James, we've decided to move this one off the blocker list due to the lack of a reliable reproducer. Radek, feel free to commit your fix still since it does look good. Hopefully that'll still clear this bug up.
I commited the patch (from comment #5), should be in version 220.127.116.11 of anaconda.
This bug appears to have been reported against 'rawhide' during the Fedora 11 development cycle.
Changing version to '11'.
More information and reason for this action is here: