Bug 171318 - dm-multipath doesn't respond to HDIO_GETGEO so oracleasm can't determine if a device is a partition or not
Summary: dm-multipath doesn't respond to HDIO_GETGEO so oracleasm can't determine if a...
Status: CLOSED DUPLICATE of bug 168801
Alias: None
Product: Red Hat Enterprise Linux 4
Classification: Red Hat
Component: device-mapper
Version: 4.0
Hardware: ia64
OS: Linux
Target Milestone: ---
: ---
Assignee: Alasdair Kergon
QA Contact:
Depends On:
TreeView+ depends on / blocked
Reported: 2005-10-20 19:05 UTC by Stoo Davies
Modified: 2010-01-12 02:15 UTC (History)
6 users (show)

Clone Of:
Last Closed: 2005-10-20 19:29:48 UTC

Attachments (Terms of Use)

Description Stoo Davies 2005-10-20 19:05:53 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.12) Gecko/20050926 Firefox/1.0.7

Description of problem:
When trying to run "oracleasm createdisk" against a partition that exists on a multipathed disk (dm-multipath), it complains with the message...

Device "/dev/mapper/xxxxx1" is not a partition.

The device in question is indeed a partition.

After looking through the Oracle mailing lists I found a similar bug had been
seen on another platform, it seems that oracleasm uses HDIO_GETGEO to decide if
the device is a partition or not, and dm-multipath doesn't support this.
I confirmed this by running strace against asmtool while running it.

The thread for the other platform is on the Oracle lists at...


the key post is...


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

How reproducible:

Steps to Reproduce:
1. Setup a multipathed disk with a single partition on it
2. Create the partition device nodes by running "kpartx -a"
3. Run "asmtool -l /dev/oracleasm -C -n VOLNAME -s /dev/multipath/xxxx"

Additional info:

Comment 1 Alasdair Kergon 2005-10-20 19:29:48 UTC
Device-mapper in general doesn't support this ioctl because it lets you set up
arbitrary mappings of devices and so there's no way it can provide any
meaningful geometry.

Multipath is a special case because there's only one real device involved so it
would be feasible to pass the ioctl through to the underlying device. [Duplicate
of 168801.]

Is the program actually *using* the result of the ioctl or does it need fixing
to check the availability of the device (or whatever it wants to know) properly?

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

Comment 2 Stoo Davies 2005-10-20 20:10:58 UTC
I believe oracleasm is only using this ioctl to find out if the device in
question is a partition, since it will refuse to create it's volumes on a whole

In this case I modified the oracleasm wrapper script to pass the force option to
asmtool, since the comments on the Oracle mailing list said that they only use
that ioctl during volume creation stage, and not afterwards.

This however means that if someone does pass oracleasm a whole disk it will
still use it, which Oracle wanted to avoid.

Note You need to log in before you can comment on or make changes to this bug.