Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

multipath-tools 0.11.0 #104

Merged
merged 82 commits into from
Jan 23, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
82 commits
Select commit Hold shift + click to select a range
e7254f5
GitHub workflows: use {upload,download}-artifact@v4
mwilck Sep 13, 2024
00fe393
GitHub workflows: update dawidd6/action-download-artifact
mwilck Sep 13, 2024
b66eced
Github workflows: native.yml: use mosteo-actions/docker-run
mwilck Sep 13, 2024
350768a
GitHub workflows: native.yml: use extra job for clang
mwilck Sep 13, 2024
7cd799f
GitHub workflows: native.yaml: make test and archive separately
mwilck Sep 13, 2024
4e551f0
libmultipath: store checker_check() result in checker struct
bmarzins Oct 15, 2024
8e3c489
libmultipath: add missing checker function prototypes
bmarzins Oct 15, 2024
cd00ae1
libmultipath: split out the code to wait for pending checkers
bmarzins Oct 15, 2024
5205b16
libmultipath: remove pending wait code from libcheck_check calls
bmarzins Oct 15, 2024
7fbfda6
multipath-tools tests: fix up directio tests
bmarzins Oct 15, 2024
657fce7
libmultipath: split get_state into two functions
bmarzins Oct 15, 2024
5a65b5b
libmultipath: change path_offline to path_sysfs_state
bmarzins Oct 15, 2024
0b7f81c
multipathd: split check_path_state into two functions
bmarzins Oct 15, 2024
62d80d9
multipathd: rename do_check_path to update_path_state
bmarzins Oct 15, 2024
4ff453f
multipathd: split check_path into two functions
bmarzins Oct 15, 2024
b08aa02
multipathd: split handle_uninitialized_path into two functions
bmarzins Oct 15, 2024
a1ff0ca
multipathd: split check_paths into two functions
bmarzins Oct 15, 2024
8b73d9a
multipathd: fix "fail path" and "reinstate path" commands
bmarzins Oct 15, 2024
605c8c3
multipathd: update priority once after updating all paths
bmarzins Oct 15, 2024
34a5fa1
multipathd: simplify checking for followover_should_failback
bmarzins Oct 15, 2024
335e618
multipathd: only refresh prios on PATH_UP and PATH_GHOST
bmarzins Oct 15, 2024
788d0e3
multipathd: remove pointless check
bmarzins Oct 15, 2024
193df28
multipathd: fix deferred_failback_tick for reload removes
bmarzins Oct 15, 2024
897b17a
libmultipath: add libcheck_need_wait checker function
bmarzins Oct 15, 2024
dde2230
libmultipath: don't wait in libcheck_pending
bmarzins Oct 15, 2024
e8a92fc
multipathd: wait for checkers to complete
bmarzins Oct 15, 2024
aa44956
multipath-tools tests: fix up directio tests
bmarzins Oct 15, 2024
9bda5e6
multipath-tools: remove hwhandler from all hwtable configs
xosevp Oct 10, 2024
9c0090b
11-dm-mpath.rules.in: import DM_COLDPLUG_SUSPENDED only once
mwilck Oct 31, 2024
68b2ca6
11-dm-mpath.rules.in: handle inactive suspended devices correctly
mwilck Oct 31, 2024
c62254b
11-dm-mpath.rules.in: clarify DM_ACTIVATION logic
mwilck Oct 31, 2024
abbbaec
11-dm-mpath-rules.in: skip one .DM_NOSCAN check
mwilck Nov 3, 2024
7cc87df
11-dm-mpath.rules.in: set .DM_NOSCAN if MPATH_UNCHANGED is set
mwilck Nov 3, 2024
e57cff3
multipathd: checker port_state before setting it.
bmarzins Sep 17, 2024
97b05a7
multipath-tools: hwtable housekeeping
xosevp Sep 24, 2024
076b7b2
multipath-tools: update comments in hwtable
xosevp Oct 8, 2024
7dc7b90
multipathd: use timestamps to tell when the directio checker timed out
bmarzins Nov 5, 2024
9a58639
libmpathutil: avoid -Wcast-function-type-mismatch error with clang 19
mwilck Nov 6, 2024
e85fc8f
multipath-tools: refresh fsf licences
xosevp Nov 8, 2024
47b7f7f
multipath-tools tests: actually sleep in directio test
mwilck Nov 6, 2024
541906f
libmultipath: dm_get_maps(): don't bail out for single-map failures
mwilck Nov 12, 2024
9a641bb
libmultipath: libmp_mapinfo(): return DMP_NO_MATCH for multi-target maps
mwilck Nov 12, 2024
8c772d3
libmultipath: check DM UUID earlier in libmp_mapinfo__
bmarzins Oct 31, 2024
67e2a20
libmultipath: use MAPINFO_CHECK_UUID in dm_get_multipath
bmarzins Oct 31, 2024
0cea7a7
multipathd: print an error when failing to connect to multipathd
bmarzins Oct 31, 2024
e6348e9
multipathd.service: restart multipathd on failure
bmarzins Oct 31, 2024
c1aa028
libmultipath: make MAPINFO_CHECK_UUID work with partitions
mwilck Nov 12, 2024
d572baf
libmultipath: check map UUID in do_foreach_partmaps
mwilck Nov 12, 2024
75360e8
libmultipath: increase log level for removing partitions
mwilck Nov 12, 2024
e8949c2
libmultipath: reduce log level of libmp_mapinfo() messages
mwilck Nov 12, 2024
eb473da
libmultipath: don't log boring state messages at level 3
mwilck Nov 12, 2024
e0ccc41
libmultipath: don't set dev_loss_tmo to 0 for NO_PATH_RETRY_FAIL
mwilck Nov 7, 2024
5736ea6
README.md: mention NEWS.md in Changelog section
mwilck Nov 13, 2024
26b50ed
NEWS.md: add section for 0.11.0
mwilck Nov 13, 2024
1234eed
README.md: mention stable branches
mwilck Nov 13, 2024
21cd1bc
NEWS.md: mention stable branches
mwilck Nov 13, 2024
c7793da
libmultipath, libmpathpersist: bump ABI versions
mwilck Nov 13, 2024
0dc4185
multipathd: fix an unsigned int ovwerflow
mwilck Nov 13, 2024
55ca664
GitHub workflows: enable unit tests for stable branches
mwilck Nov 14, 2024
c163c04
GitHub Workflows: add abi check for stable branches
mwilck Nov 14, 2024
64369c1
libmultipath: Fix MAPINFO_CHECK_UUID with partitions
bmarzins Nov 21, 2024
7e94849
multipathd: move systemd watchdog handling into daemon
mwilck Nov 18, 2024
9e94cb3
GitHub workflows: update checkout to @v4
mwilck Nov 21, 2024
0794251
libmultipath: signal device with no table in libmp_mapinfo
bmarzins Nov 26, 2024
f83913f
multipath-tools tests: fix mapinfo tests
mwilck Nov 26, 2024
ba8d386
libmultipath: fix removing device after failed creation
bmarzins Nov 26, 2024
dec16be
libmultipath: set uuid, name, and dmi if a device is found
bmarzins Nov 26, 2024
74094b4
libmultipath: check table type in dm_find_map_by_wwid
bmarzins Nov 26, 2024
ad74610
libmultipath: handle a create corner case for empty devices
bmarzins Nov 26, 2024
607a7ef
libmultipath: handle empty maps in dm_flush_map__
bmarzins Nov 26, 2024
001b4d2
libmultipath: factor out code to check if a device is a partition
bmarzins Nov 26, 2024
d7150a3
libmultipath: remove recursive calls in partmap_funcs
bmarzins Nov 26, 2024
9830387
libmultipath: assume device is in use if dm_get_opencount fails
bmarzins Nov 26, 2024
bea77ed
libmultipath: accept empty partitions as valid in do_foreach_partmaps
bmarzins Nov 26, 2024
758d974
libmultipath: reduce log level for DMP_NOT_FOUND
bmarzins Nov 26, 2024
0fb15f3
NEWS.md: describe latest changes
mwilck Nov 26, 2024
7610a48
multipath-tools: add SCST to hwtable
xosevp Nov 29, 2024
c0cf3cb
multipath-tools: add HPE MSA Gen7 (2070/2072) to hwtable
xosevp Dec 5, 2024
a1e3cf2
libmultipath: add condition for enqueueing path to io error check
chenrenhui-hw Jan 10, 2025
5a3d334
libmultipath/foreign: fix memory leak in nvme foreign handler
bmarzins Jan 9, 2025
fff9f77
Update NEWS.md
mwilck Jan 17, 2025
e6c8428
libmultipath: bump version to 0.11.0
mwilck Nov 13, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/actions/spelling/expect.txt
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ DIO
directio
disablequeueing
dmevent
dmi
dmmp
dmraid
dmsetup
Expand Down Expand Up @@ -183,6 +184,7 @@ rtprio
sas
sbp
scsi
SCST
sda
sdc
setmarginal
Expand All @@ -207,6 +209,7 @@ switchgroup
sys
sysfs
sysinit
systemd
tcp
terabytes
SYSDIR
Expand Down Expand Up @@ -237,12 +240,14 @@ usr
uuid
valgrind
varoqui
versioning
Vess
vgr
VNX
vpd
VSN
wakka
watchdogsec
weightedpath
wholedisk
Wilck
Expand Down
89 changes: 89 additions & 0 deletions .github/workflows/abi-stable.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
name: check-abi for stable branch
on:
push:
branches:
- 'stable-*'
paths:
- '.github/workflows/abi-stable.yaml'
- '**.h'
- '**.c'
- '**.version'
pull_request:
branches:
- 'stable-*'
workflow_dispatch:

jobs:
reference-abi:
runs-on: ubuntu-20.04
steps:
- name: get parent tag
run: >
echo ${{ github.ref }} |
sed -E 's,refs/heads/stable-([0-9]\.[0-9]*)\.y,PARENT_TAG=\1.0,' >> $GITHUB_ENV
- name: assert parent tag
run: /bin/false
if: ${{ env.PARENT_TAG == '' }}
- name: update
run: sudo apt-get update
- name: dependencies
run: >
sudo apt-get install --yes gcc
gcc make pkg-config abigail-tools
libdevmapper-dev libreadline-dev libaio-dev libsystemd-dev
libudev-dev libjson-c-dev liburcu-dev libcmocka-dev libedit-dev
- name: checkout ${{ env.PARENT_TAG }}
uses: actions/checkout@v4
with:
ref: ${{ env.PARENT_TAG }}
- name: build ABI for ${{ env.PARENT_TAG }}
run: make -j$(grep -c ^processor /proc/cpuinfo) -Orecurse abi
- name: save ABI
uses: actions/upload-artifact@v4
with:
name: multipath-abi-${{ env.PARENT_TAG }}
path: abi

check-abi:
runs-on: ubuntu-20.04
needs: reference-abi
steps:
- name: get parent tag
run: >
echo ${{ github.ref }} |
sed -E 's,refs/heads/stable-([0-9]\.[0-9]*)\.y,PARENT_TAG=\1.0,' >> $GITHUB_ENV
- name: assert parent tag
run: /bin/false
if: ${{ env.PARENT_TAG == '' }}
- name: checkout ${{ env.PARENT_TAG }}
uses: actions/checkout@v4
with:
ref: ${{ env.PARENT_TAG }}
- name: download ABI for ${{ env.PARENT_TAG }}
id: download_abi
uses: actions/download-artifact@v4
with:
name: multipath-abi-${{ env.PARENT_TAG }}
path: reference-abi
- name: update
run: sudo apt-get update
if: steps.download_abi.outcome != 'success'
- name: dependencies
run: >
sudo apt-get install --yes gcc
gcc make pkg-config abigail-tools
libdevmapper-dev libreadline-dev libaio-dev libsystemd-dev
libudev-dev libjson-c-dev liburcu-dev libcmocka-dev libedit-dev
- name: check ABI of ${{ github.ref }} against ${{ env.PARENT_TAG }}
id: check_abi
run: make -j$(grep -c ^processor /proc/cpuinfo) -Orecurse abi-test
continue-on-error: true
- name: save differences
if: ${{ steps.check_abi.outcome != 'success' }}
uses: actions/upload-artifact@v4
with:
name: abi-test
path: abi-test
- name: fail
run: /bin/false
if: steps.check_abi.outcome != 'success'
10 changes: 6 additions & 4 deletions .github/workflows/abi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,11 @@ jobs:
if: ${{ env.ABI_BRANCH == '' }}
run: echo "ABI_BRANCH=master" >> $GITHUB_ENV
- name: checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: get reference ABI
id: reference
continue-on-error: true
uses: dawidd6/action-download-artifact@v2
uses: dawidd6/action-download-artifact@v6
with:
workflow: abi.yaml
branch: ${{ env.ABI_BRANCH }}
Expand All @@ -45,21 +45,23 @@ jobs:
- name: create ABI
run: make -Orecurse -j$(grep -c ^processor /proc/cpuinfo) abi.tar.gz
- name: save ABI
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v4
with:
name: abi
path: abi
overwrite: true
- name: compare ABI against reference
id: compare
continue-on-error: true
if: ${{ steps.reference.outcome == 'success' }}
run: make abi-test
- name: save differences
if: ${{ steps.compare.outcome == 'failure' }}
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v4
with:
name: abi-test
path: abi-test
overwrite: true

- name: fail
# MUST use >- here, otherwise the condition always evaluates to true
Expand Down
6 changes: 4 additions & 2 deletions .github/workflows/build-and-unittest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,12 @@ on:
- master
- queue
- tip
- 'stable-*'
pull_request:
branches:
- master
- queue
- 'stable-*'
jobs:
jammy:
runs-on: ubuntu-22.04
Expand All @@ -18,7 +20,7 @@ jobs:
rl: ['', 'libreadline', 'libedit']
cc: [ gcc, clang ]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: update
run: sudo apt-get update
- name: dependencies
Expand Down Expand Up @@ -73,7 +75,7 @@ jobs:
rl: ['', 'libreadline', 'libedit']
cc: [ gcc, clang ]
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v4
- name: mpath
run: sudo modprobe dm_multipath
- name: brd
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/coverity.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ jobs:
runs-on: ubuntu-22.04
steps:
- name: checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: dependencies
run: >
sudo apt-get install --yes
Expand Down
19 changes: 10 additions & 9 deletions .github/workflows/foreign.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
- master
- queue
- tip
- 'stable-*'
paths:
- '.github/workflows/foreign.yaml'
- '**.h'
Expand All @@ -15,6 +16,7 @@ on:
branches:
- master
- queue
- 'stable-*'
paths:
- '.github/workflows/foreign.yaml'
- '**.h'
Expand All @@ -34,16 +36,15 @@ jobs:
container: ghcr.io/mwilck/multipath-cross-debian_cross-${{ matrix.os }}-${{ matrix.arch }}
steps:
- name: checkout
uses: actions/checkout@v1
uses: actions/checkout@v4
- name: build
run: make -j8 -Orecurse test-progs
- name: create binary archive
run: make test-progs.tar
run: make -j -Orecurse test-progs.tar
- name: upload binary archive
uses: actions/upload-artifact@v1
uses: actions/upload-artifact@v4
with:
name: cross-${{ matrix.os }}-${{ matrix.arch }}
path: test-progs.tar
overwrite: true

test:
runs-on: ubuntu-22.04
Expand All @@ -61,11 +62,11 @@ jobs:
run: echo CONTAINER_ARCH="arm/v7" >> $GITHUB_ENV
if: ${{ matrix.arch == 'armhf' }}
- name: download binary archive
uses: actions/download-artifact@v1
uses: actions/download-artifact@v4
with:
name: cross-${{ matrix.os }}-${{ matrix.arch }}
- name: unpack binary archive
run: tar xfv cross-${{ matrix.os }}-${{ matrix.arch }}/test-progs.tar
run: tar xfv test-progs.tar
- name: enable foreign arch
uses: dbhi/qus/action@main
- name: run tests
Expand Down Expand Up @@ -100,11 +101,11 @@ jobs:
run: echo CONTAINER_ARCH="arm/v7" >> $GITHUB_ENV
if: ${{ matrix.arch == 'armhf' }}
- name: download binary archive
uses: actions/download-artifact@v1
uses: actions/download-artifact@v4
with:
name: cross-${{ matrix.os }}-${{ matrix.arch }}
- name: unpack binary archive
run: tar xfv cross-${{ matrix.os }}-${{ matrix.arch }}/test-progs.tar
run: tar xfv test-progs.tar
- name: enable foreign arch
uses: dbhi/qus/action@main
- name: run tests
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/multiarch-stable.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
- master
- queue
- tip
- 'stable-*'
paths:
- '.github/workflows/multiarch-stable.yaml'
- '**.h'
Expand All @@ -15,6 +16,7 @@ on:
branches:
- master
- queue
- 'stable-*'
paths:
- '.github/workflows/multiarch-stable.yaml'
- '**.h'
Expand Down Expand Up @@ -42,7 +44,7 @@ jobs:
arch: ppc64le
steps:
- name: checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: enable foreign arch
uses: dbhi/qus/action@main
- name: compile and run unit tests
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/multiarch.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ on:
- master
- queue
- tip
- 'stable-*'
paths:
- '.github/workflows/multiarch.yaml'
- '**.h'
Expand All @@ -15,6 +16,7 @@ on:
branches:
- master
- queue
- 'stable-*'
paths:
- '.github/workflows/multiarch.yaml'
- '**.h'
Expand Down Expand Up @@ -45,7 +47,7 @@ jobs:
arch: arm/v7
steps:
- name: checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: enable foreign arch
uses: dbhi/qus/action@main
- name: compile and run unit tests
Expand Down
Loading
Loading