Bug 159678

Summary: delay needed after loading 3w-9xxx before root becomes visible
Product: Red Hat Enterprise Linux 4 Reporter: imorgan
Component: mkinitrdAssignee: Brian Lane <bcl>
Status: CLOSED WONTFIX QA Contact: Kevin Baker <kbaker>
Severity: high Docs Contact:
Priority: medium    
Version: 4.0CC: ineilsen
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2011-07-27 17:57:28 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Description imorgan 2005-06-06 21:57:16 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050513 Fedora/1.0.4-1.3.1 Firefox/1.0.4

Description of problem:
The 'init' script created my mkinitrd assumed that immediately after insmod 3w-9xxx, it should be able to mount the root filesystem, but the 3w-9xxx driver takes 2-3 seconds to scan for the arrays and make them visible to the system. As-is, the initrd will fail (unable to mount root), because the root filesystem doesn't exist yet.

By manually editing the init script and re-packing the initrd, I can make it properly mount the root fs by adding:

   sleep 5

right after the insmod 3w-9xxx.

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:
1. mkinitrd as usual on a system with 3w-9xxx.
2. reboot.
3. watch the initrd fail to mount the root fs.

Actual Results:  initrd fails to mount the root fs.

Expected Results:  Wait for the 3w-9xxx initialization to complete before proceeding, or retry mounting the rootfs every few seconds until some timeout (say 30 seconds) before failing.

Additional info:

I classify this a "Normal" severity, not low, because the loss of functionality is not minor (system won't boot), and the workaround, although not overly complex, is time consuming and awkward as the initrd must be manually fixed each mkinitrd is used.

Comment 2 imorgan 2005-06-14 21:09:37 UTC
I see that mkinitrd already has special cases for block device modules that
require a delay after loading. For example, the usb-storage module. I have added
an identical special case for the 3w-9xxx module with a 5 second sleep, and now
I can boot consistently without having to manually hack the initrd. Please add
this fix to mkinitrd.