Skip to content

Commits

Permalink
tip
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Commits on Jul 5, 2023

  1. GitHub workflows: switch to Ubuntu 22.04 runner

    Only for "abi" not yet, we need make sure that it's output remains
    unchanged if we change the runner.
    
    Signed-off-by: Martin Wilck <mwilck@suse.com>
    mwilck committed Jul 5, 2023
    Copy the full SHA
    8ccaae8 View commit details
    Browse the repository at this point in the history

Commits on Jul 4, 2023

  1. GitHub workflows: use Fedora 37 in native.yaml

    Signed-off-by: Martin Wilck <mwilck@suse.com>
    mwilck committed Jul 4, 2023
    Copy the full SHA
    69fe8d5 View commit details
    Browse the repository at this point in the history
  2. GitHub workflows: enable Debian "bookworm"

    Signed-off-by: Martin Wilck <mwilck@suse.com>
    mwilck committed Jul 4, 2023
    Copy the full SHA
    0a9c8b7 View commit details
    Browse the repository at this point in the history
  3. Fixup "libmultipath: fix dev_loss_tmo even if not set in configuration"

    My previous patch "libmultipath: fix dev_loss_tmo even if not set in
    configuration" implicitly assumed that DEV_LOSS_TMO is 0, which is true
    but unclean. Make the intention of the code more explicit.
    
    Signed-off-by: Martin Wilck <mwilck@suse.com>
    mwilck committed Jul 4, 2023
    Copy the full SHA
    1226cf0 View commit details
    Browse the repository at this point in the history
  4. libmultipath: ignore nvme devices if nvme native multipath is enabled

    If the nvme native multipath driver is enabled, blacklist nvme devices
    for dm-multipath by default. This is particularly useful with
    "find_multipaths greedy".
    
    Signed-off-by: Martin Wilck <mwilck@suse.com>
    mwilck committed Jul 4, 2023
    Copy the full SHA
    578db39 View commit details
    Browse the repository at this point in the history
  5. libmultipath: fix dev_loss_tmo even if not set in configuration

    If pp->dev_loss_tmo == DEV_LOSS_TMO_UNSET, sysfs_set_scsi_tmo() would
    not set it to min_dev_loss_tmo, causing the system dev_loss_tmo value
    (by default, 30s) to remain unchanged. Fix it.
    
    Fixes: 6ad77db ("libmultipath: Set the scsi timeout parameters by path")
    Signed-off-by: Martin Wilck <mwilck@suse.com>
    Reviewed-by: Benjamin Marzinski <bmarzins@redhat.com>
    mwilck committed Jul 4, 2023
    Copy the full SHA
    b865a27 View commit details
    Browse the repository at this point in the history
  6. libmultipath: dm_get_maps(): remove spurious assignment

    Issue found by coverity:
      CID 393674:  Code maintainability issues  (UNUSED_VALUE)
      Assigning value "NULL" to "mpp" here, but that stored value is overwritten
      before it can be used.
    
    Signed-off-by: Martin Wilck <mwilck@suse.com>
    mwilck committed Jul 4, 2023
    Copy the full SHA
    73b241a View commit details
    Browse the repository at this point in the history

Commits on Jun 26, 2023

  1. multipath-tools build: accept KBUILD_BUILD_TIMESTAMP from env

    It would appear KBUILD_BUILD_TIMESTAMP is meant to be used the same way as in
    the linux kernel build. For linux, builders are supposed to set
    KBUILD_BUILD_TIMESTAMP in the environment if they want a stable timestamp.
    
    The libddmmp makefile however tries to directly call git to get a timestamp,
    which fails in a typical Debian build environment, which is not a full git
    source tree.
    
    Have libdmmp/Makefile use KBUILD_BUILD_TIMESTAMP from the environment if
    available, otherwise use git as before.
    
    mwilck: changed slightly, preserving the original logic
    
    Signed-off-by: Chris Hofstaedtler <zeha@debian.org>
    Signed-off-by: Martin Wilck <mwilck@suse.com>
    lamby authored and mwilck committed Jun 26, 2023
    Copy the full SHA
    8ed9621 View commit details
    Browse the repository at this point in the history
  2. multipath-tools build: rename PKGCONFIG to PKG_CONFIG

    Debian's build system helpers automatically set "PKG_CONFIG" correctly, so it
    would be convenient for Debian to use this name instead of "PKGCONFIG".
    
    The majority of projects also seem to call this makefile variable "PKG_CONFIG".
    
    Signed-off-by: Chris Hofstaedtler <zeha@debian.org>
    Acked-by: Sam James <sam@gentoo.org>
    Reviewed-by: Martin Wilck <mwilck@suse.com>
    zeha authored and mwilck committed Jun 26, 2023
    Copy the full SHA
    cc7d7d7 View commit details
    Browse the repository at this point in the history

Commits on Jun 16, 2023

  1. multipath-tools: fix syntax and spelling errors

    Cc: Martin Wilck <mwilck@suse.com>
    Cc: Benjamin Marzinski <bmarzins@redhat.com>
    Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>
    Cc: DM-DEVEL ML <dm-devel@redhat.com>
    Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
    Reviewed-by: Martin Wilck <mwilck@suse.com>
    xosevp authored and mwilck committed Jun 16, 2023
    Copy the full SHA
    d469731 View commit details
    Browse the repository at this point in the history

Commits on Jun 15, 2023

  1. multipathd: don't assume mpp->paths will exist in need_switch_pathgroup

    When need_switch_pathgroup() is called by deferred_failback_tick(),
    there is a chance that mpp->paths will be NULL, even if there are paths
    in the multipath device's pathgroups. Instead check if there are
    multiple pathgroups, since multipath can't be using the wrong pathgroup
    if there is one or none.
    
    Reviewed-by: Martin Wilck <mwilck@suse.com>
    Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
    bmarzins authored and mwilck committed Jun 15, 2023
    Copy the full SHA
    85bbf89 View commit details
    Browse the repository at this point in the history
  2. multipathd: reload map if the path groups are out of order

    need_switch_pathgroup() only checks if the currently used pathgroup is
    not the highest priority pathgroup. If it isn't, all multipathd does is
    instruct the kernel to switch to the correct pathgroup.  However, the
    kernel treats the pathgroups as if they were ordered by priority. When
    the kernel runs out of paths to use in the currently selected pathgroup,
    it will start checking the pathgroups in order until it finds one with
    usable paths.
    
    need_switch_pathgroup() should also check if the pathgroups are out of
    order, and if so, multipathd should reload the map to reorder them
    correctly.
    
    Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
    Reviewed-by: Martin Wilck <mwilck@suse.com>
    bmarzins authored and mwilck committed Jun 15, 2023
    Copy the full SHA
    18975ce View commit details
    Browse the repository at this point in the history
  3. multipathd: only refresh priorities in update_prio()

    Multipathd previously had various rules to update priorities in
    update_prio(), need_switch_pathgroup(), and reload_map(). Instead, only
    update the priority in update_prio().  To cover the cases where the
    priorities were getting updated in other functions, update_prio() now
    always updates all paths' priorities, if the priority on the path that
    it was called with changes.
    
    Also, do not try to update a path's priority if it is down. Previously,
    when refreshing all the paths' priorities, a path could have its
    priority updated when it was in the PATH_DOWN state, as long as its
    priority was PRIO_UNDEF. But if a path is down, and the last time
    multipath tried to get its priority, it failed, it seems likely that the
    prioritizer will just fail again.
    
    Finally, skip updating all paths' priorities in
    deferred_failback_tick().  Now that all the paths' priorities will get
    updated when one changes before starting the deferred failback count,
    it's no longer necessary to update them all again when the failback
    timeout expires.  The checker loop will continue to update them
    correctly while the timeout is going on.
    
    Reviewed-by: Martin Wilck <mwilck@suse.com>
    Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
    bmarzins authored and mwilck committed Jun 15, 2023
    Copy the full SHA
    6ccd7b8 View commit details
    Browse the repository at this point in the history
  4. multipath-tools tests: add tests to verify PRIO_UNDEF changes

    Make sure that pathgroups that include paths with a PRIO_UNDEF priority
    are properly sorted.
    
    Reviewed-by: Martin Wilck <mwilck@suse.com>
    Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
    bmarzins authored and mwilck committed Jun 15, 2023
    Copy the full SHA
    31a31d9 View commit details
    Browse the repository at this point in the history
  5. libmultipath: don't count PRIO_UNDEF paths for pathgroup priority

    When multipath is not set to group_by_prio, different paths in a
    pathgroup can have different priorities. If there is a problem getting
    the priority of an active path, its priority will be set to PRIO_UNDEF.
    This will change the priority of the whole pathgroup, even though it's
    likely that this is simply a temporary error. Instead, do not count
    PRIO_UNDEF paths towards to priority of the path group, unless there are
    no paths that have an actual priority. This will not effect the priority
    of multipath devices with group_by_prio, since all paths in a pathgroup
    will have the same priority.
    
    Reviewed-by: Martin Wilck <mwilck@suse.com>
    Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
    bmarzins authored and mwilck committed Jun 15, 2023
    Copy the full SHA
    fb92d75 View commit details
    Browse the repository at this point in the history
  6. libmultipath: add "detect_pgpolicy_use_tpg" config option

    If this and "detect_pgpolicy" are both selected and ALUA is
    autodetected, the multipath device will use the "group_by_tpg" policy
    instead of the "group_by_prio" policy.
    
    Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
    Reviewed-by: Martin Wilck <mwilck@suse.com>
    bmarzins authored and mwilck committed Jun 15, 2023
    Copy the full SHA
    aa5a262 View commit details
    Browse the repository at this point in the history
  7. libmultipath: add "detect_pgpolicy" config option

    This allows configuations to use "group_by_prio" if alua is autodetected
    and another policy if it isn't, so they can work with detect_prio.
    
    Reviewed-by: Martin Wilck <mwilck@suse.com>
    Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
    bmarzins authored and mwilck committed Jun 15, 2023
    Copy the full SHA
    f6566b3 View commit details
    Browse the repository at this point in the history
  8. multipath-tools tests: add tests for group_by_tpg policy

    Reviewed-by: Martin Wilck <mwilck@suse.com>
    Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
    bmarzins authored and mwilck committed Jun 15, 2023
    Copy the full SHA
    7ed582a View commit details
    Browse the repository at this point in the history
  9. libmultipath: add ALUA tpg path wildcard

    Make it possible to easily check a path's target port group.
    
    Reviewed-by: Martin Wilck <mwilck@suse.com>
    Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
    bmarzins authored and mwilck committed Jun 15, 2023
    Copy the full SHA
    c9bdf91 View commit details
    Browse the repository at this point in the history
  10. libmultipath: don't copy pgpolicy string in get_pgpolicy_name

    copying the value into a passed in buffer doesn't help any of the
    callers of this function. It's just wasted work.
    
    Reviewed-by: Martin Wilck <mwilck@suse.com>
    Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
    bmarzins authored and mwilck committed Jun 15, 2023
    Copy the full SHA
    3be3143 View commit details
    Browse the repository at this point in the history
  11. libmultipath: add group_by_tpg path_grouping_policy

    When we group paths by prio and the priority changes, paths can end up
    temporarily in the wrong path groups.  This usually happens when some
    paths are down, so their priority can't be updated. To avoid this for
    ALUA paths, group them by their target port group instead. The path
    groups chosen by this policy won't always match with those chosen by
    group_by_prio, since it is possible for multiple ALUA target port
    groups to have the same priority.
    
    Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
    Reviewed-by: Martin Wilck <mwilck@suse.com>
    bmarzins authored and mwilck committed Jun 15, 2023
    Copy the full SHA
    1dd054a View commit details
    Browse the repository at this point in the history
  12. multipath-tools: fix spelling

    libmultipath/structs_vec.c:270: mulitpath ==> multipath
    libmultipath/libmultipath.version:36: overriden ==> overridden
    libmpathutil/libmpathutil.version:36: overriden ==> overridden
    
    SUMMARY:
    mulitpath     1
    overriden     2
    
    Cc: Martin Wilck <mwilck@suse.com>
    Cc: Benjamin Marzinski <bmarzins@redhat.com>
    Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>
    Cc: DM-DEVEL ML <dm-devel@redhat.com>
    Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
    Reviewed-by: Martin Wilck <mwilck@suse.com>
    xosevp authored and mwilck committed Jun 15, 2023
    Copy the full SHA
    1d3b27b View commit details
    Browse the repository at this point in the history

Commits on Jun 5, 2023

  1. multipath-tools: adapt HITACHI/OPEN- config to work with alua and mul…

    …tibus
    
    ALUA is needed by Hitachi Global-Active Device (GAD):
    https://knowledge.hitachivantara.com/Documents/Management_Software/SVOS/8.1/Global-Active_Device/Overview_of_global-active_device
    
    (Information about ALUA support from personal communication from Hitachi).
    
    "no_path_retry" recommendation from:
    https://knowledge.hitachivantara.com/Documents/Management_Software/SVOS/9.8.6/Volume_Management_-_VSP_5000_Series/Host_Attachment/05_Red_Hat_Linux_configuration_and_attachment#Device_Mapper_(DM)_Multipath_configuration.0D.0A____for_Red_Hat_Linux
    
    Cc: Matthias Rudolph <Matthias.Rudolph@hitachivantara.com>
    Cc: Martin Wilck <mwilck@suse.com>
    Cc: Benjamin Marzinski <bmarzins@redhat.com>
    Cc: Christophe Varoqui <christophe.varoqui@opensvc.com>
    Cc: DM-DEVEL ML <dm-devel@redhat.com>
    Signed-off-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
    Reviewed-by: Martin Wilck <mwilck@suse.com>
    xosevp authored and mwilck committed Jun 5, 2023
    Copy the full SHA
    ea73333 View commit details
    Browse the repository at this point in the history

Commits on May 24, 2023

  1. dm-parts.rules: fix warning reported by udevadm verify

    Fix the following warning reported by udevadm verify:
    
    kpartx/dm-parts.rules:35 A comma between tokens is expected.
    kpartx/dm-parts.rules: udev rules check failed
    
    Note (mwilck): technically, this udev rule was parsed and
    executed by udev correctly, and this is unlikely to change.
    But the missing comma didn't comply with the udev(7) man page.
    This commit fixes that.
    
    Signed-off-by: Dmitry V. Levin <ldv@strace.io>
    Reviewed-by: Martin Wilck <mwilck@suse.com>
    ldv-alt authored and mwilck committed May 24, 2023
    Copy the full SHA
    57ee6f9 View commit details
    Browse the repository at this point in the history
  2. 11-dm-mpath.rules: fix warnings reported by udevadm verify

    Fix warnings reported by udevadm verify:
    
    multipath/11-dm-mpath.rules:18 Whitespace after comma is expected.
    ...
    multipath/11-dm-mpath.rules: udev rules check failed
    
    Note (mwilck): technically, the syntax of the udev rules was correct;
    they are parsed and executed by udev correctly, and this is unlikely
    to change. But systemd has enabled stricter checks in "udevadm verify"
    to ensure better readability of udev rules files
    (systemd/systemd#26980). This commit
    makes sure the multipath-tools rules comply with these checks.
    
    Signed-off-by: Dmitry V. Levin <ldv@strace.io>
    Reviewed-by: Martin Wilck <mwilck@suse.com>
    ldv-alt authored and mwilck committed May 24, 2023
    Copy the full SHA
    787b6d3 View commit details
    Browse the repository at this point in the history

Commits on Apr 6, 2023

  1. Merge pull request opensvc#64 from openSUSE/queue

    multipath-tools 0.9.5
    cvaroqui committed Apr 6, 2023
    Copy the full SHA
    24bc5ca View commit details
    Browse the repository at this point in the history

Commits on Mar 31, 2023

  1. Copy the full SHA
    736c0b4 View commit details
    Browse the repository at this point in the history
  2. GitHub workflows (basic): remove Ubuntu 18.04, add 22.04

    GitHub has ended Ubuntu 18.04 (bionic) support in 12/22.
    Remove the 18.04 runner, and use Ubuntu 22.04 (jammy) instead. While at it,
    use a matrix for the build. This way we get gcc-9 and clang-10 on
    20.04, and gcc-11 and clang-14 on 22.04.
    
    Jammy-related cludges for the workflow:
    
     - We need to install linux-modules-extra to be able to use the zram device.
     - valgrind doesn't support the dwarf-5 format that clang-14 generate
       by default. See e.g. https://bugs.kde.org/show_bug.cgi?id=452758
    mwilck committed Mar 31, 2023
    Copy the full SHA
    74f5405 View commit details
    Browse the repository at this point in the history
  3. libmultipath: use directio checker for LIO targets

    LIO always responds with GOOD status to TUR. Thus TUR is
    not useful as path checker for LIO targets.
    
    Fixes opensvc#54
    
    mwilck: v2: fixed up with .detect_checker setting.
    
    Reported-by: Li Xiaokeng <lixiaokeng@huawei.com>
    Signed-off-by: Martin Wilck <mwilck@suse.com>
    Reviewed-by: Benjamin Marzinski <bmarzins@redhat.com>
    Tested-by: Li Xiaokeng <lixiaokeng@huawei.com>
    mwilck committed Mar 31, 2023
    Copy the full SHA
    71448bb View commit details
    Browse the repository at this point in the history

Commits on Mar 28, 2023

  1. multipathd.service: remove "Also=multipathd.socket"

    This "Also=" directive is wrong. It was meant for enabling socket activation,
    but it actually does the opposite. "Also=multipathd.socket" means that
    enabling/disabling the service will enable/disable the socket, too. This is
    not what we want: socket activation means that we can enable the socket
    while the service is disabled and will be activated by the socket on demand.
    
    See dracutdevs/dracut#2290,
    opensvc#65
    
    Fixes: ca985df ("multipathd: switch to socket activation for systemd")
    Signed-off-by: Martin Wilck <mwilck@suse.com>
    Reviewed-by: Benjamin Marzinski <bmarzins@redhat.com>
    mwilck committed Mar 28, 2023
    Copy the full SHA
    53b215e View commit details
    Browse the repository at this point in the history

Commits on Mar 24, 2023

  1. libmultipathd: Avoid parsing errors due to unsupported designators

    Unsupported designators, even if they are correct, will result
    in parsing errors. Add support for these two:
    
    Logical Unit Group (0x6)
    Vendor Specific (0x0)
    
    Mar 20 13:37:35 init107-18 multipath[45016]: parse_vpd_pg83:
    invalid device designator at offset 87: 01060004
    Mar 20 13:37:35 init107-18 multipath[45016]: parse_vpd_pg83:
    invalid device designator at offset 131: 02000005
    
    Thanks,
    Brian
    
    mwilck: added descriptor type 7 (MD5) for completeness.
    
    Signed-off-by: Brian Bunker <brian@purestorage.com>
    Signed-off-by: Martin Wilck <mwilck@suse.com>
    Reviewed-by: Benjamin Marzinski <bmarzins@redhat.com>
    brianatpurestorage authored and mwilck committed Mar 24, 2023
    Copy the full SHA
    169ed6b View commit details
    Browse the repository at this point in the history

Commits on Mar 23, 2023

  1. multipath-tools tests: fix quoting of CFLAGS in Makefile

    Otherwise, when CFLAGS/CPPFLAGS have multiple entries (like "-O2 -pipe"), we
    get an error:
    ```
    make[1]: Entering directory '/var/tmp/portage/sys-fs/multipath-tools-0.9.4/work/multipath-tools-0.9.4/tests'
    /bin/sh: line 1: -pipe: command not found
    make[1]: *** [Makefile:115: libmultipath.so.0] Error 127
    make[1]: *** Waiting for unfinished jobs....
    ```
    
    Signed-off-by: Sam James <sam@gentoo.org>
    Reviewed-by: Martin Wilck <mwilck@suse.com>
    thesamesam authored and mwilck committed Mar 23, 2023
    Copy the full SHA
    3707e88 View commit details
    Browse the repository at this point in the history
  2. multipath-tools Makefiles: handle dependency files correctly

    Some generated .d files were not correctly included, and not
    removed with "make dep_clean". Fix it.
    
    Reported-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
    Signed-off-by: Martin Wilck <mwilck@suse.com>
    Reviewed-by: Benjamin Marzinski <bmarzins@redhat.com>
    Tested-by: Xose Vazquez Perez <xose.vazquez@gmail.com>
    mwilck committed Mar 23, 2023
    Copy the full SHA
    f6a5457 View commit details
    Browse the repository at this point in the history

Commits on Mar 22, 2023

  1. libmultipath.version: bump symbol version of get_uid

    694a29d ("libmultipath: limit paths that can get wwid from environment")
    added the pp->can_use_env_uid, which is used in get_uid() and it's caller,
    pathinfo().
    
    Signed-off-by: Martin Wilck <mwilck@suse.com>
    mwilck committed Mar 22, 2023
    Copy the full SHA
    be7f0db View commit details
    Browse the repository at this point in the history

Commits on Mar 21, 2023

  1. libmultipath: limit paths that can get wwid from environment

    Currently, whenever getting the uid_attribute from the udev database
    fails, multipath will try to get it from the environment variables. This
    normally isn't a problem, since either multipath -u is getting called
    from a uevent and the environment will have the correct value in that
    variable, or something else is being run and that variable won't be set.
    However, when find_multipaths is configured to "smart", this causes
    problems. For maybe devices, multipath needs to get the WWIDs of all the
    other block devices, to see if they match the maybe device wwid.  If one
    of those devices doesn't have uid_attribute set in its udev database,
    multipath will fall back to checking the environment for it, and it will
    find that variable set to the WWID of the maybe device that this uevent
    is for.  This means that all devices with no WWID will end up appearing
    to have the same WWID as the maybe device, causing multipath to
    incorrectly claim it.
    
    Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
    Reviewed-by: Martin Wilck <mwilck@suse.com>
    bmarzins authored and mwilck committed Mar 21, 2023
    Copy the full SHA
    694a29d View commit details
    Browse the repository at this point in the history
Older