From: Benjamin Marzinski <bmarzins@redhat.com>
To: Martin Wilck <martin.wilck@suse.com>
Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>,
device-mapper development <dm-devel@lists.linux.dev>
Subject: Re: [PATCH 0/8] multipath fixes to tableless device handling
Date: Thu, 7 Nov 2024 12:43:36 -0500 [thread overview]
Message-ID: <Zyz8SFDAkIggpuND@redhat.com> (raw)
In-Reply-To: <bc44c44523af9f1014c6e96842371bce422f18a7.camel@suse.com>
On Thu, Nov 07, 2024 at 01:20:09PM +0100, Martin Wilck wrote:
> On Wed, 2024-11-06 at 17:52 +0100, Martin Wilck wrote:
> > On Thu, 2024-10-31 at 14:32 -0400, Benjamin Marzinski wrote:
> > > This patchset include a couple of miscellaneous cleanups, but is
> > > mostly
> > > in response to issues brought up in
> > > https://github.com/opensvc/multipath-tools/issues/100
> > > It adds auto restarting to the multipathd.service unit file. I'm
> > > fairly
> > > conflicted about the correct limits to be placed on these restarts,
> > > so
> > > if anyone has strong opinions and a good argument, I'm more than
> > > willing
> > > to change them.
> > >
> > > The bulk of the changes deal with how multipath handles devices
> > > without
> > > any table. Multipath was supposed to delete these if they were left
> > > behind after a failed device creation, but that code was broken.
> > > However devices aren't typically left behind after failed creates,
> > > so
> > > it
> > > didn't matter.
> > >
> > > A bigger issue is that multipathd and multipath could fail if
> > > tableless
> > > devices were present. With this patchset, they will simply ignore
> > > tableless devices that don't have a multipath prefixed DM UUID. The
> > > last
> > > patch is a RFC patch that changes the behavior for tableless
> > > devices
> > > that do have a multipath prefixed DM UUID. It makes multipath
> > > remove
> > > these devices on the grounds that they are likely failed creates.
> > > However, looking at the libdevmapper code, I'm not sure that we
> > > actually
> > > want to do this. When a DM_DEVICE_CREATE task is run, it will
> > > first
> > > create a tableless device, and then immediately load the table and
> > > resume the device. So it's possible any that tableless devices
> > > which
> > > multipath sees are actually in the process of getting created. I
> > > left
> > > the patch as part of the set, but I'm not sure that removing the
> > > devices
> > > is the right answer here. I haven't ever seen any tableless
> > > multipath
> > > devices lying around (and I couldn't force any to get created when
> > > I
> > > tried). Unless other people have seen these, then I don't think the
> > > final patch of this set should go in.
> > >
> >
> > Does it do any harm if we just keep these devices around? If there
> > are
> > path devices around with matching UUIDs, the right thing to do for
> > multipathd would be to reload the map's table with an appropriate
> > multipath target. Otherwise, the map will just float around empty and
> > do no harm. This is how multipathd 0.9.9 and earlier behave, and
> > I see no issue with that.
>
> Thinking about it, I believe we should actually accept devices that
> have an mpath UUID and an empty table, and add them to our mpvec. We
> should treat them like devices that have a multipath target but no path
> devices. If any matching paths become available, the map will be
> reloaded and the issue will be fixed. IMO, this is less prone to race
> conditions than trying to delete and re-add the devices.
I'm not sure off the top of my head how easy it will be to handle
devices with no dm table at all, but I'll take a look into this.
-Ben
> Martin
next prev parent reply other threads:[~2024-11-07 17:43 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-31 18:32 [PATCH 0/8] multipath fixes to tableless device handling Benjamin Marzinski
2024-10-31 18:32 ` [PATCH 1/8] multipathd: print an error when failing to connect to multipathd Benjamin Marzinski
2024-10-31 18:32 ` [PATCH 2/8] libmultipath: check DM UUID earlier in libmp_mapinfo__ Benjamin Marzinski
2024-10-31 18:32 ` [PATCH 3/8] libmultipath: Don't fail dm_get_maps for DMP_NOT_FOUND Benjamin Marzinski
2024-10-31 18:32 ` [PATCH 4/8] multipathd.service: restart multipathd on failure Benjamin Marzinski
2024-10-31 18:32 ` [PATCH 5/8] libmultipath: use MAPINFO_CHECK_UUID in dm_get_multipath Benjamin Marzinski
2024-10-31 18:32 ` [PATCH 6/8] libmultipath: signal multipath UUID device with no table Benjamin Marzinski
2024-11-06 16:17 ` Martin Wilck
2024-11-07 17:42 ` Benjamin Marzinski
2024-10-31 18:33 ` [PATCH 7/8] libmultipath: fix removing device after failed creation Benjamin Marzinski
2024-10-31 18:33 ` [RFC PATCH 8/8] libmultipath: remove devices with no table and multipath DM UUID Benjamin Marzinski
2024-11-06 16:52 ` [PATCH 0/8] multipath fixes to tableless device handling Martin Wilck
2024-11-07 12:20 ` Martin Wilck
2024-11-07 17:43 ` Benjamin Marzinski [this message]
2024-11-07 18:02 ` Martin Wilck
2024-11-08 22:08 ` Benjamin Marzinski
2024-11-08 23:03 ` Martin Wilck
2024-11-11 17:17 ` Benjamin Marzinski
2024-11-12 7:46 ` Martin Wilck
2024-11-13 0:07 ` Benjamin Marzinski
2024-11-06 16:52 ` Martin Wilck
2024-11-06 22:39 ` Martin Wilck
2024-11-07 17:48 ` Benjamin Marzinski
2024-11-07 18:03 ` Martin Wilck
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=Zyz8SFDAkIggpuND@redhat.com \
--to=bmarzins@redhat.com \
--cc=christophe.varoqui@opensvc.com \
--cc=dm-devel@lists.linux.dev \
--cc=martin.wilck@suse.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.