Bug 238124

Summary: kdump failed with cciss device, if one specify it with device file
Product: Red Hat Enterprise Linux 5 Reporter: masanari iida <masanari_iida>
Component: kexec-toolsAssignee: Neil Horman <nhorman>
Status: CLOSED DUPLICATE QA Contact:
Severity: high Docs Contact:
Priority: medium    
Version: 5.0   
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2007-04-27 13:59:22 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Attachments:
Description Flags
The init file created on HP Proliant with cciss none

Description masanari iida 2007-04-27 11:14:30 UTC
Description of problem:
kdump failed with cciss device when I sepcify the device by 
device file name within /etc/kdump.conf.
Specify the device with uuid or label doesn't reproduce the failure.


Version-Release number of selected component (if applicable):
kexec-tools-1.101-164.el5

How reproducible:
Always 

Steps to Reproduce:
1. Specify dump device as  "ext3 /dev/cciss/c0d0p1" within kdump.conf
2. Configure kdump.
3. Crash the system.
  
Actual results:
kdump failed to mount the partition.

 mount: Mounting /dev/cciss/c0d0p1 on /mnt failed: No such file or directory
 umount: Couldn't umount /mnt: Invalid argument


Expected results:
kdump succesfully mount the device and copy /proc/vmcore into the partition.

Additional info:
I suspect mkdumprd failed to handle cciss device's naming rule,
when it create init script within initrd-kdump.img.

(Detail)
mkdumprd command creates initrd-kdump.img for kdump(diskdump).
The "init" is the core of the kdump.

During the block device creation section, the script search /sys/block.
If the HP Proliant system with cciss device, the output would be ...

# for i in `ls /sys/block` ; do echo $i ; done
cciss!c0d0
cciss!c0d1
cciss!c0d2
cciss!c0d3
fd0
hda
md0
ram0
(snip)

In case of IDE disk, $i = hda.
In case of cciss disk, $i = cciss!c0d0

And then, the script create device files.

    PART_NUM=1
    mknod /dev/$i$PART_NUM b $MAJOR_NUM $j

In case of IDE disk, $i$PART starts from /dev/hda1.
In case of cciss disk, $i$PART starts from /dev/cciss!c0d01.
This device file name doesn't follow the naming rule of cciss device.

As I specify "ext3 /dev/cciss/c0d0p1" within /etc/kdump.conf,
mkdumprd pickup the "/dev/cciss/c0d0p1" as DUMPDEV in init.

     mount -t ext3 $DUMPDEV /mnt

The actual command would be "mount -t ext3 /dev/cciss/c0d0p1 /mnt".
But the init script has created /dev/cciss!c0d01. 
This is why the mount command returns "no such file or directory".

I suspect this is the reason why the init script failed to mount 
partition on a cciss device, if I specify the device as device 
file name, but succeeded with label or uuid.

I hope you look into this symptom, and fix the mkdumprd ASAP.

Comment 1 masanari iida 2007-04-27 11:17:45 UTC
Created attachment 153602 [details]
The init file created on HP Proliant with cciss

Comment 2 Neil Horman 2007-04-27 13:53:53 UTC
Please test out the patch in bz 228685.  If it gives you appropriate results,
I'll check it in.

Comment 3 Neil Horman 2007-04-27 13:59:22 UTC

*** This bug has been marked as a duplicate of 228685 ***

Comment 4 masanari iida 2007-05-08 02:12:50 UTC
Test in my lab confirm the patch in bz 228685 fixed the problem.
Thanks for support.