Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
2224ce5
mpathpersist: Fix REPORT CAPABILITIES output
bmarzins Nov 11, 2025
9394d0c
GitHub workflows: Update runners to ubuntu-24.04
mwilck Nov 14, 2025
2a53c6c
GitHub workflows: native.yaml: add fedora-43
mwilck Nov 14, 2025
59001f8
GitHub workflows: native.yaml: add openSUSE Leap 16.0 and 15.6
mwilck Nov 14, 2025
be439da
GitHub workflows: run arm64 tests on native runner
mwilck Nov 14, 2025
b375b3f
GitHub workflows: rolling: upload binaries on error
mwilck Nov 17, 2025
3ac34ef
GitHub workflows: multiarch-stable: upload binaries on error
mwilck Nov 17, 2025
8b85554
GitHub workflows: native: upload binaries on error
mwilck Nov 17, 2025
2f78d96
GitHub workflows: multiarch: upload binaries on error
mwilck Nov 17, 2025
39f44cb
GitHub workflows: use -j$(nproc) consistently
mwilck Nov 17, 2025
322db5b
GitHub workflows: update checkout to @v4
mwilck Nov 21, 2024
9d6784e
GitHub workflows: install libmount-dev on Ubuntu
mwilck Nov 17, 2025
1038a58
libmultipath: change path_offline to path_sysfs_state
bmarzins Oct 15, 2024
fd438b9
GitHub actions: spelling: ignore generic hex number patterns
mwilck Nov 21, 2025
145b5fe
libmultipath: Remove the undefined symbol from the linker script
vadorovsky Jan 7, 2026
9964fe1
multipath-tools: Fix ISO C23 errors with strchr()
mwilck Dec 8, 2025
f96bdf6
Makefile: fix CI build errors with cmocka 2.0
mwilck Dec 16, 2025
ed1ec84
multipath-tools man pages: fix multipathd commands keyword ordering
bmarzins Dec 2, 2025
299d913
multipath-tools: add Seagate Exos and Nytro series to hwtable
xosevp Nov 15, 2025
a83c3db
multipath-tools: identify more Storwize models
xosevp Nov 16, 2025
6f5231a
multipathd: Dont pthread_join twice
Itxaka Dec 5, 2025
91162af
multipathd: join the init_unwinder dummy thread
mwilck Dec 10, 2025
b644063
kpartx: fix some memory leaks
mwilck Dec 10, 2025
126c90c
kpartx: avoid double-free of mapname
mwilck Jan 15, 2026
d6d5273
libmultipath: warn only once in scsi_tmo_error_msg()
mwilck Jan 9, 2026
1240b25
multipath-tools: compile with -fno-strict-aliasing
mwilck Jan 9, 2026
9bc502e
multipathd: fix an uninitialized variable warning
mwilck Jan 16, 2026
a0bad24
Makefiles: add "ASAN=1" make parameter for AddressSanitizer
mwilck Jan 16, 2026
b266046
Makefiles: add "OPT=" make parameter
mwilck Jan 16, 2026
500bf80
multipath-tools tests: suppress a compiler warning for vpd.c
mwilck Jan 19, 2026
769521e
multipath-tools: update Path Selector descriptions on the man page
xosevp May 9, 2025
b1aab35
Spelling: pull in changes from master branch
mwilck Jan 20, 2026
c693ea1
Update NEWS.md for 0.10.6
mwilck Jan 20, 2026
fd5713b
libmultipath: bump version to 0.10.6
mwilck Jan 20, 2026
1677400
multipathd: finish initalization of paths added while offline
bmarzins Jan 21, 2026
4040e2a
multipathd: print path offline message even without a checker
bmarzins Jan 21, 2026
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
16 changes: 14 additions & 2 deletions .github/actions/spelling/expect.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ alloc
alltgpt
alua
aptpl
ASAN
ascq
ata
autoconfig
Expand All @@ -14,6 +15,7 @@ autoresize
backported
barbie
BINDIR
bitfield
blkid
bmarzins
Bsymbolic
Expand Down Expand Up @@ -50,6 +52,7 @@ DIO
directio
disablequeueing
dmevent
dmi
dmmp
dmraid
dmsetup
Expand All @@ -59,12 +62,14 @@ ECKD
emc
Engenio
EVPD
Exos
failback
failover
fds
fexceptions
FFFFFFFF
fge
fno
followover
forcequeueing
fpin
Expand All @@ -76,6 +81,7 @@ getrlimit
getuid
github
gitlab
google
GPT
hbtl
hds
Expand Down Expand Up @@ -121,6 +127,7 @@ libudevdir
liburcu
linux
LIO
lld
lpthread
Lun
lvm
Expand All @@ -140,12 +147,13 @@ multipathing
multipaths
multiqueue
mwilck
NFINIDAT
NOLOG
nompath
NOSCAN
Nosync
nvme
NFINIDAT
Nytro
OBJDEPS
oneshot
ontap
Expand All @@ -155,8 +163,10 @@ OPTFLAGS
paramp
partx
pathgroup
pathlist
petabytes
pgpolicy
pgvec
plugindir
PNR
ppc
Expand Down Expand Up @@ -191,12 +201,12 @@ rpmbuild
rport
rtpi
rtprio
sanitizers
sas
sbp
scsi
SCST
sda
sdc
Seagate
setmarginal
setprkey
Expand Down Expand Up @@ -251,6 +261,7 @@ usr
uuid
valgrind
varoqui
versioning
Vess
vgr
VNX
Expand All @@ -261,6 +272,7 @@ weightedpath
wholedisk
Wilck
wildcards
Wno
workflows
wrt
wwid
Expand Down
5 changes: 5 additions & 0 deletions .github/actions/spelling/patterns.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,11 @@
#commit
\b[0-9a-f]{7}\b

# Generic Hex numbers
\b0x[0-9a-f]{4}\b
\b0x[0-9a-f]{8}\b
\b0x[0-9a-f]{16}\b

# WWNN/WWPN (NAA identifiers)
\b(?:0x)?10[0-9a-f]{14}\b
\b(?:0x|3)?[25][0-9a-f]{15}\b
Expand Down
10 changes: 6 additions & 4 deletions .github/workflows/abi-stable.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ on:

jobs:
reference-abi:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: get parent tag (push)
run: >
Expand All @@ -38,20 +38,21 @@ jobs:
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
libmount-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
run: make -j$(nproc) -Orecurse abi
- name: save ABI
uses: actions/upload-artifact@v4
with:
name: multipath-abi-${{ env.PARENT_TAG }}
path: abi

check-abi:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
needs: reference-abi
steps:
- name: get parent tag (push)
Expand Down Expand Up @@ -86,9 +87,10 @@ jobs:
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
libmount-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
run: make -j$(nproc) -Orecurse abi-test
continue-on-error: true
- name: save differences
if: ${{ steps.check_abi.outcome != 'success' }}
Expand Down
7 changes: 4 additions & 3 deletions .github/workflows/abi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@ env:

jobs:
save-and-test-ABI:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: set ABI branch
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
Expand All @@ -42,8 +42,9 @@ jobs:
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
libmount-dev
- name: create ABI
run: make -Orecurse -j$(grep -c ^processor /proc/cpuinfo) abi.tar.gz
run: make -Orecurse -j$(nproc) abi.tar.gz
- name: save ABI
uses: actions/upload-artifact@v4
with:
Expand Down
18 changes: 9 additions & 9 deletions .github/workflows/build-and-unittest.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,14 @@ on:
- 'stable-*'
jobs:
jammy:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
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 All @@ -46,16 +46,16 @@ jobs:
if: ${{ matrix.cc == 'clang' }}
- name: build
run: >
make -Orecurse -j$(grep -c ^processor /proc/cpuinfo)
make -Orecurse -j$(nproc)
READLINE=${{ matrix.rl }} OPTFLAGS="$OPT"
- name: test
run: >
make -Orecurse -j$(grep -c ^processor /proc/cpuinfo)
make -Orecurse -j$(nproc)
OPTFLAGS="$OPT" test
- name: valgrind-test
id: valgrind
run: >
make -Orecurse -j$(grep -c ^processor /proc/cpuinfo)
make -Orecurse -j$(nproc)
OPTFLAGS="$OPT" valgrind-test
continue-on-error: true
- name: valgrind-results
Expand All @@ -75,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 All @@ -92,12 +92,12 @@ jobs:
- name: set CC
run: echo CC=${{ matrix.cc }} >> $GITHUB_ENV
- name: build
run: make -Orecurse -j$(grep -c ^processor /proc/cpuinfo) READLINE=${{ matrix.rl }}
run: make -Orecurse -j$(nproc) READLINE=${{ matrix.rl }}
- name: test
run: make -Orecurse -j$(grep -c ^processor /proc/cpuinfo) test
run: make -Orecurse -j$(nproc) test
- name: valgrind-test
id: valgrind
run: make -Orecurse -j$(grep -c ^processor /proc/cpuinfo) valgrind-test
run: make -Orecurse -j$(nproc) valgrind-test
continue-on-error: true
- name: valgrind-results
run: cat tests/*.vgr
Expand Down
7 changes: 4 additions & 3 deletions .github/workflows/coverity.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,17 @@ on:

jobs:
upload-coverity-scan:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: dependencies
run: >
sudo apt-get install --yes
gcc make pkg-config
libdevmapper-dev libreadline-dev libaio-dev libsystemd-dev
libudev-dev libjson-c-dev liburcu-dev libcmocka-dev libedit-dev
libmount-dev
- name: download coverity
run: >
curl -o cov-analysis-linux64.tar.gz
Expand All @@ -32,7 +33,7 @@ jobs:
- name: build with cov-build
run: >
PATH="$PWD/coverity/bin:$PATH"
cov-build --dir cov-int make -Orecurse -j"$(grep -c ^processor /proc/cpuinfo)"
cov-build --dir cov-int make -Orecurse -j"$(nproc)"
- name: pack results
run: tar cfz multipath-tools.tgz cov-int
- name: submit results
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/foreign.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ on:
jobs:

cross-build:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
Expand All @@ -41,9 +41,9 @@ 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 -j -Orecurse test-progs.tar
run: make -j$(nproc) -Orecurse test-progs.tar
- name: upload binary archive
uses: actions/upload-artifact@v4
with:
Expand All @@ -52,7 +52,7 @@ jobs:
overwrite: true

test:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
needs: cross-build
strategy:
fail-fast: false
Expand Down Expand Up @@ -94,7 +94,7 @@ jobs:
pull-params: "--platform linux/${{ env.CONTAINER_ARCH }}"

root-test:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
needs: cross-build
strategy:
fail-fast: false
Expand Down
29 changes: 23 additions & 6 deletions .github/workflows/multiarch-stable.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ on:
jobs:

build-old:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix:
Expand All @@ -37,26 +37,23 @@ jobs:
- ubuntu-trusty
arch: [386, arm/v7]
include:
- os: debian-trixie
arch: aarch64
- os: debian-trixie
arch: s390x
- os: debian-trixie
arch: ppc64le
- os: debian-bookworm
arch: aarch64
- os: debian-bookworm
arch: s390x
- os: debian-bookworm
arch: ppc64le
steps:
- name: checkout
uses: actions/checkout@v2
uses: actions/checkout@v4
- name: enable foreign arch
uses: docker/setup-qemu-action@v2
with:
image: tonistiigi/binfmt:latest
- name: compile and run unit tests
id: test
uses: mosteo-actions/docker-run@v1
with:
image: ghcr.io/mwilck/multipath-build-${{ matrix.os }}
Expand All @@ -65,3 +62,23 @@ jobs:
command: test
params: "--platform linux/${{ matrix.arch }}"
pull-params: "--platform linux/${{ matrix.arch }}"
continue-on-error: true
- name: create binary archive
uses: mosteo-actions/docker-run@v1
with:
image: ghcr.io/mwilck/multipath-build-${{ matrix.os }}
guest-dir: /build
host-dir: ${{ github.workspace }}
command: test-progs.tar
params: "--platform linux/${{ matrix.arch }}"
pull-params: "--platform linux/${{ matrix.arch }}"
if: steps.test.outcome != 'success'
- name: upload binary archive
uses: actions/upload-artifact@v4
with:
name: binaries-${{ matrix.os }}-${{ matrix.arch }}
path: test-progs.tar
if: steps.test.outcome != 'success'
- name: fail
run: /bin/false
if: steps.test.outcome != 'success'
Loading
Loading