multipathd segfaults on udevtrigger on RHEL5/32bit with cciss storage

Solution Verified - Updated -

Issue

The multipathd daemon segfaults when udevtrigger is run on a 32 bit RHEL5 system if block devices with names 10 or more characters long are present.

Oct 22 09:10:07 | uevent 'add' from '/block/cciss!c0d0'
Oct 22 09:10:07 | ACTION=add
Oct 22 09:10:07 | DEVPATH=/block/cciss!c0d0
Oct 22 09:10:07 | SUBSYSTEM=block
Oct 22 09:10:07 | SEQNUM=5114
Oct 22 09:10:07 | MINOR=0
Oct 22 09:10:07 | MAJOR=104
Oct 22 09:10:07 | PHYSDEVPATH=/devices/pci0000:40/0000:40:11.0/0000:4f:00.0/0000:50:08.0/cciss0/c0d0
Oct 22 09:10:07 | PHYSDEVBUS=cciss
Oct 22 09:10:07 | uevent 'add' from '/block/cciss!c0d0/cciss!c0d0p2'
Oct 22 09:10:07 | ACTION=add
Segmentation fault

(gdb) where
#0  0x08074c35 in basenamecpy (str1=0x0, str2=0xb7eac2c4 "") at util.c:44
#1  0x0804c270 in uev_trigger (uev=0xb7eac33c, trigger_data=0x0) at main.c:701
#2  0x08079fee in __dso_handle ()
#3  0xb7eac33c in ?? ()
Backtrace stopped: previous frame inner to this frame (corrupt stack?)

Environment

  • Red Hat Enterprise Linux 5, minor version <10
  • i386/i686 32-bit kernel
  • 64bit systems are also affected though less likely to segfault due to stack alignment differences
  • device-mapper-multipath, versions <0.4.7-54.el5_9.1
  • HP cciss controller (or any storage with device names exceeding 10 characters)

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content