From: "Bryn M. Reeves" <bmr@redhat.com>
To: device-mapper development <dm-devel@redhat.com>
Subject: Re: multipathd segfault and error calling out
Date: Thu, 26 Feb 2009 09:40:49 +0000 [thread overview]
Message-ID: <49A663A1.5050505@redhat.com> (raw)
In-Reply-To: <1235614064.6568.65.camel@jaspav.missionsit.net.missionsit.net>
John A. Sullivan III wrote:
> Hello, all. I am running on kernel 2.6.27 on CentOS 5.2 with
> VServer and device-mapper-multipath-0.4.7-17.el5. I have a custom
> mpath_prio_ssi script which takes the device name (e.g., sdaa),
> pulls out the path from /etc/disk/by-path and then echos a priority
> based upon a lookup table. It works perfectly fine from the
> command line. multipath -ll shows the priorities assigned perfectly
> and exactly the right paths are active.
>
> However, when I start multipathd, it all goes down the tubes. The
> paths disappear and /var/log/messages is filled with: Feb 25
> 20:50:17 vd01 multipathd: error calling out
> /usr/local/sbin/mpath_prio_ssi sdh Feb 25 20:50:17 vd01 multipathd:
> error calling out /usr/local/sbin/mpath_prio_ssi sdi Feb 25
> 20:50:17 vd01 multipathd: error calling out
> /usr/local/sbin/mpath_prio_ssi sdj Feb 25 20:50:17 vd01 multipathd:
> error calling out /usr/local/sbin/mpath_prio_ssi sdc
I think you'll need to modify the multipathd binary to achieve this.
To avoid deadlocking when file system access is interrupted due to
path failures multipathd forks into a new namespace and discards all
the device-backed file systems that are mounted.
It creates an in-memory file system (ramfs) and copies all the
binaries it will need into this. The file system is locked into memory
so that multipathd can continue to function even if the paths backing
the root file system have all failed.
For the callouts themselves (getuid and getprio binaries) the config
file processing takes care of this but this only works for stand-alone
binaries. If your script has other dependencies then you'll have to
add code to pull those into the ramfs volume.
See libmultipath/config.c:push_callout(),
libmultipath/config.c:store_hwe(),
multipathd/main.c:prepare_namespace() and other code that manipulates
the list of binaries stored in conf->binvec.
Regards,
Bryn.
next prev parent reply other threads:[~2009-02-26 9:40 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-02-26 2:07 multipathd segfault and error calling out John A. Sullivan III
2009-02-26 3:04 ` Konrad Rzeszutek
2009-02-26 3:23 ` John A. Sullivan III
2009-02-26 5:14 ` John A. Sullivan III
2009-02-26 5:30 ` John A. Sullivan III
2009-02-26 7:16 ` Hannes Reinecke
2009-02-26 9:40 ` Bryn M. Reeves [this message]
2009-02-26 13:33 ` John A. Sullivan III
2009-02-27 3:06 ` John A. Sullivan III
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=49A663A1.5050505@redhat.com \
--to=bmr@redhat.com \
--cc=dm-devel@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.