Re: [PATCH 0/8] multipath fixes to tableless device handling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.
> 
> Benjamin Marzinski (8):
>   multipathd: print an error when failing to connect to multipathd
>   libmultipath: check DM UUID earlier in libmp_mapinfo__
>   libmultipath: Don't fail dm_get_maps for DMP_NOT_FOUND
>   multipathd.service: restart multipathd on failure
>   libmultipath: use MAPINFO_CHECK_UUID in dm_get_multipath
>   libmultipath: signal multipath UUID device with no table
>   libmultipath: fix removing device after failed creation
>   libmultipath: remove devices with no table and multipath DM UUID
> 
>  libmultipath/devmapper.c         | 56 +++++++++++++++++++++++-------
> --
>  libmultipath/devmapper.h         |  6 ++--
>  multipathd/multipathd.service.in |  3 ++
>  multipathd/uxclnt.c              |  4 ++-
>  4 files changed, 51 insertions(+), 18 deletions(-)

For patch 1-6 of this series: 
Reviewed-by: Martin Wilck <mwilck@xxxxxxxx>






[Index of Archives]     [DM Crypt]     [Fedora Desktop]     [ATA RAID]     [Fedora Marketing]     [Fedora Packaging]     [Fedora SELinux]     [Yosemite Discussion]     [KDE Users]     [Fedora Docs]

  Powered by Linux