mbox series

[v2,00/12] multipath fixes to tableless device handling

Message ID 20241112150215.90182-1-mwilck@suse.com (mailing list archive)
Headers show
Series multipath fixes to tableless device handling | expand

Message

Martin Wilck Nov. 12, 2024, 3:02 p.m. UTC
This patch set is a re-spin of Ben's previous series by the same name [1].

Patch 1 is my take on fixing the regression with map detection
in multipath-tools 0.10.0. The basic idea is to never fail in dm_get_maps(),
even if libmp_mapinfo() fails on one or more maps. The behavior wrt "empty"
maps, or maps without table, is the same as in 0.9.9 and older, these
maps are simply ignored by multipathd.

Patch 2 improves the semantics for decting maps with multiple targets.

Patch 3-6 are from Ben's original series, with unit test fixes added in
patch 3.

Patch 7 and 8 improve the semantics of MAPINFO_CHECK_UUID for partitions.

Patch 9-11 are minor logging improvements.

Patch 12 is an independent bug fix I discovered recently.

As usual, comments and reviews welcome.

Martin

[1] https://lore.kernel.org/dm-devel/20241031183301.391416-1-bmarzins@redhat.com/

Benjamin Marzinski (4):
  libmultipath: check DM UUID earlier in libmp_mapinfo__
  libmultipath: use MAPINFO_CHECK_UUID in dm_get_multipath
  multipathd: print an error when failing to connect to multipathd
  multipathd.service: restart multipathd on failure

Martin Wilck (8):
  libmultipath: dm_get_maps(): don't bail out for single-map failures
  libmultipath: libmp_mapinfo(): return DMP_NO_MATCH for multi-target
    maps
  libmultipath: make MAPINFO_CHECK_UUID work with partitions
  libmultipath: check map UUID in do_foreach_partmaps
  libmultipath: increase log level for removing partitions
  libmultipath: reduce log level of libmp_mapinfo() messages
  libmultipath: don't log boring state messages at level 3
  libmultipath: don't set dev_loss_tmo to 0 for NO_PATH_RETRY_FAIL

 libmultipath/devmapper.c         | 70 ++++++++++++++++----------------
 libmultipath/devmapper.h         |  8 +++-
 libmultipath/discovery.c         | 13 ++++--
 libmultipath/structs.h           |  1 +
 multipathd/multipathd.service.in |  3 ++
 multipathd/uxclnt.c              |  4 +-
 tests/mapinfo.c                  | 17 +++++---
 7 files changed, 71 insertions(+), 45 deletions(-)

Comments

Benjamin Marzinski Nov. 13, 2024, 12:12 a.m. UTC | #1
On Tue, Nov 12, 2024 at 04:02:03PM +0100, Martin Wilck wrote:
> This patch set is a re-spin of Ben's previous series by the same name [1].

For the set:
Reviewed-by: Benjamin Marzinski <bmarzins@redhat.com>
 
> Patch 1 is my take on fixing the regression with map detection
> in multipath-tools 0.10.0. The basic idea is to never fail in dm_get_maps(),
> even if libmp_mapinfo() fails on one or more maps. The behavior wrt "empty"
> maps, or maps without table, is the same as in 0.9.9 and older, these
> maps are simply ignored by multipathd.
> 
> Patch 2 improves the semantics for decting maps with multiple targets.
> 
> Patch 3-6 are from Ben's original series, with unit test fixes added in
> patch 3.
> 
> Patch 7 and 8 improve the semantics of MAPINFO_CHECK_UUID for partitions.
> 
> Patch 9-11 are minor logging improvements.
> 
> Patch 12 is an independent bug fix I discovered recently.
> 
> As usual, comments and reviews welcome.
> 
> Martin
> 
> [1] https://lore.kernel.org/dm-devel/20241031183301.391416-1-bmarzins@redhat.com/
> 
> Benjamin Marzinski (4):
>   libmultipath: check DM UUID earlier in libmp_mapinfo__
>   libmultipath: use MAPINFO_CHECK_UUID in dm_get_multipath
>   multipathd: print an error when failing to connect to multipathd
>   multipathd.service: restart multipathd on failure
> 
> Martin Wilck (8):
>   libmultipath: dm_get_maps(): don't bail out for single-map failures
>   libmultipath: libmp_mapinfo(): return DMP_NO_MATCH for multi-target
>     maps
>   libmultipath: make MAPINFO_CHECK_UUID work with partitions
>   libmultipath: check map UUID in do_foreach_partmaps
>   libmultipath: increase log level for removing partitions
>   libmultipath: reduce log level of libmp_mapinfo() messages
>   libmultipath: don't log boring state messages at level 3
>   libmultipath: don't set dev_loss_tmo to 0 for NO_PATH_RETRY_FAIL
> 
>  libmultipath/devmapper.c         | 70 ++++++++++++++++----------------
>  libmultipath/devmapper.h         |  8 +++-
>  libmultipath/discovery.c         | 13 ++++--
>  libmultipath/structs.h           |  1 +
>  multipathd/multipathd.service.in |  3 ++
>  multipathd/uxclnt.c              |  4 +-
>  tests/mapinfo.c                  | 17 +++++---
>  7 files changed, 71 insertions(+), 45 deletions(-)
> 
> -- 
> 2.47.0