Skip to content

Commit

Permalink
libmultipath: tur: protect pthread_cond_timedwait with a loop
Browse files Browse the repository at this point in the history
Defect reported by coverity (413383 Data race condition)

Signed-off-by: Martin Wilck <[email protected]>
  • Loading branch information
mwilck committed Jan 5, 2024
1 parent 6e80142 commit 5170eae
Showing 1 changed file with 6 additions and 3 deletions.
9 changes: 6 additions & 3 deletions libmultipath/checkers/tur.c
Original file line number Diff line number Diff line change
Expand Up @@ -438,9 +438,12 @@ int libcheck_check(struct checker * c)
}
tur_timeout(&tsp);
pthread_mutex_lock(&ct->lock);
if (ct->state == PATH_PENDING && ct->msgid == MSG_TUR_RUNNING)
r = pthread_cond_timedwait(&ct->active, &ct->lock,
&tsp);

for (r = 0;
r == 0 && ct->state == PATH_PENDING &&
ct->msgid == MSG_TUR_RUNNING;
r = pthread_cond_timedwait(&ct->active, &ct->lock, &tsp));

if (!r) {
tur_status = ct->state;
c->msgid = ct->msgid;
Expand Down

1 comment on commit 5170eae

@github-actions
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@check-spelling-bot Report

🔴 Please review

See the 📜action log or 📝 job summary for details.

Unrecognized words (2453)
aarch
abi
abidiff
abidw
ABIWARNING
absname
aca
acassen
acerbis
acl
acm
ACQ
acs
activepath
ACTV
acwu
acylinders
adaptergroup
addi
addlen
addmap
addout
addpts
addsz
addtogroup
addu
adrfam
adt
aea
aeb
AEN
aerl
afi
aghi
agp
agpt
AHB
aio
AIXVOL
akuster
alignof
Alletra
alloc
alloca
alltgpt
alphasort
alua
alyseo
amd
ams
anacap
anagrpid
anagrpmax
anatt
andersen
andl
andq
appmask
apptag
apsta
aptes
aptpl
apu
AQA
aqs
argconfig
argl
argn
argp
ARGREGS
argvec
arity
Arkadiusz
armhf
arnony
Arraycommpath
ARRSZ
asciilabel
ascq
asmlinkage
asms
asprintf
asq
asqsz
Assche
ata
atexit
atoi
attrname
atype
ause
autoconfig
autodetected
avglatency
avl
avscc
avtcvp
awun
awupf
badbadno
Bader
badlen
Balua
Balways
baq
baqq
barbie
bartb
barx
barz
basenamecpy
basenum
baz
bazy
bbig
bboo
bbsize
Bcase
BCOMMANDS
Bconst
BCTRL
Bdeprecated
Bdetect
bdev
Bdevice
bdg
Bdm
Bdmmp
bestpg
Bfail
Bfailover
Bfile
Bgreedy
Bhardware
bic
BIGNORED
BImportant
bindir
BIODASDINFO
biop
BIR
BITARR
bitfield
bitmaps
bitmask
blankline
ble
blentry
blists
BLKBSZGET
blkdev
BLKGETLASTSECT
BLKGETSIZE
blkid
BLKL
blknr
blkperci
blks
BLKSSZGET
blksz
BLKSZGET
blockdev
blocksize
Bmanual
bmarzin
Bmax
Bmerging
Bmpath
Bmpathpersist
Bmultipath
Bmultipathc
Bmultipathd
Bmust
bnd
Bnegative
Bnever
Bniw
Bno
Bnot
BNote
bootcode
bootinfo
bpid
BPINFO
BPMBL
bpos
Bpositive
Bprintf
Bproduct
BPRSEL
bpstart
bque
brcount
brd
Breconfigure
Bregex
Brevision
brking
bsd
bsdweb
Bservice
Bsg
Bshow
Bstrict
Bstrongly
bswap
Bsysfs
BSZGET
Btimeout
Btur
buf
BUFFERSIZE
Buffp
buflen
bufsiz
bufsz
bugzilla
Buid
BUILDDIRS
Buniform
bvanassche
Bvendor
bwwid
byteorder
bytesread
byteswap
bzero
calloc
capdescr
Carvalho
Cassen
cattr
cblock
cchh
cchhb
cciss
cctemp
cdb
cdbsz
cdw
centiwatts
cfa
cfg
CFIs
cflags
cfreader
cfv
CFW
cfz
cgi
chanq
charp
chdir
checkerloop
checkint
chengjike
chgcnt
chinatelecom
chk
chkr
chkrstate
Chl
chongyun
chr
christophe
cic
cisize
CKD
ckr
CLA
clangd
clariion
CLOEXEC
closedir
closelog
cls
CLT
CMB
cmbloc
cmbsz
cmddt
cmdid
cmdkw
CMDLEN
cmdline
cmdp
cmds
CMDSIZE
cmdvec
cmic
cmocka
cmp
cmpc
cmplt
cmpp
cms
cns
cnt
cntid
cntlid
cntlist
codepage
codepoet
codeset
coldplug
commandline
COMPAQ
compat
COMPELNT
compln
COMSTAR
conarg
CONCAT
condattr
conditionalization
conditionalized
condlog
condp
CONDVAR
conectiva
confdata
configdir
configfile
configlet
configurator
connectargs
CONTIG
cov
coverity
cpg
cpgp
cplusplus
CPPFLAGS
cptpl
cqes
cqid
cqr
CQS
CRCPOLY
crctable
crdp
crdt
CREDT
CRH
Crits
crkey
crnt
CSTS
csum
CSUPP
ctl
ctlid
ctlr
ctratt
ctrattr
ctrlavail
ctrldgn
ctrlid
ctrlist
ctrls
ctx
ctxp
ctxt
ctype
CURDIR
curmp
currtime
custo
cva
cvaroqui
cvsweb
cxx
CYGWIN
cyls
cylskew
DABE
daddr
daddu
daemondir
dalb
danrl
dasd
dasda
dasdinfo
dasdu
dataarea
datacore
datalen
datap
davidw
dawidd
dbbuf
DBD
DBG
dbhi
DBIN
dbus
DCONFIG
DDEEE
DDEEEUL
DDEFAULT
ddf
DDIO
DEAC
DEADFACEULL
dealloc
debian
DEBUGINFO
defgroup
defint
defstr
deinit
delims
dellemc
deltatee
Dembach
descr
descs
DESTDIR
DEVDB
DEVDT
DEVFG
devgroup
devicename
Devicenode
devinfo
DEVK
DEVL
DEVLIB
devmap
devmapper
devmappings
devn
devname
devno
devnode
devnum
devpath
devt
DEVTK
DEVTL
devtype
DEXTRAVERSION
dfd
dff
DFORTIFY
DGC
DGRAM
dhwe
difftime
dio
dirbuf
directio
dirfd
disablegroup
DISABLEQ
disablequeueing
diskdevice
disklabel
DISKMAGIC
disksize
distros
dlclose
dlerror
dlfcn
dlfeat
dlfw
dlock
dlog
dlopen
dlsym
dmdeps
dmdev
dmdp
dmevent
dmi
dmmp
dmname
DMP
dmparser
dmpart
dmraid
dmrq
dmserial
dmsetup
dmstate
dmt
dmtbl
DMULTIPATH
dmuuid
DMX
DNO
DNVALGRIND
docbook
dohighlight
domap
Domsch
dontcare
dpc
DPIE
dps
dptr
dqdelay
dqflipping
dqforeign
dqforgets
dqmarginal
dqmpathpersist
dqnvme
dqsan
dqsd
dqshaky
dracut
drd
drivedata
DRUNTIME
drv
DSCB
dscr
DSCYL
DSIND
dslba
dsll
dsm
dsmgmt
DSNAM
dsouza
dspec
DSRG
DSSN
DSTATE
dstlen
dsto
dstrd
DSTRK
dsubu
dsv
dtag
DTESTCONFDIR
DTUR
dtwin
dtype
DUMPHEX
DURCU
DUSE
DVD
dword
dxfer
dxferp
Dzz
eacces
EAGAIN
eax
EBADF
EBUSY
ebx
ECKD
ECONNREFUSED
ECONNRESET
ecp
ecx
edi
editline
edstt
edx
EEXIST
EFAULT
efi
EINTR
EINVAL
EIO
EISDIR
ele
eled
elif
elist
ello
elpe
emc
EMERG
enablegroup
endgid
endianness
endir
endtime
engenio
enm
ENODATA
ENODEV
ENOENT
ENOMEM
ENOSYS
ENOTBLK
ENOTTY
ENP
ENQ
ent
envp
ENXIO
EOB
EOVERFLOW
EPERM
eptr
ERANGE
ered
EROFS
errbuf
errcode
errmsg
errno
errstr
errsv
esac
eseries
ESRCH
ESVA
etags
ETB
ETERNUS
ETIMEDOUT
ETX
eui
EUROLOGC
eval'ing
eventfd
Everty
evnt
evntcode
evntnum
Evo
evpd
evs
evt
EWOULDBLOCK
execl
exitcode
extd
failback
failcount
FAILFAST
failover
fastfailed
FCDISK
FCH
fclose
fcntl
fctype
fdasd
fdcount
fdesc
FDNO
fdopen
fds
fedcba
Feng
ferror
ffc
ffd
FFF
FFFE
ffff
fffffff
ffffffff
fflush
ffs
ffsll
FFULL
fge
fgetc
fgets
fieldnm
fieldwidth
filedes
filelist
fileno
filepresent
findmp
firewire
flagstr
flba
FLEXLINE
FMTID
fna
FNM
fnmatch
fnname
fno
fnptr
followover
FOOa
FOOz
fopen
FORCEQ
forcequeueing
foundkw
fpath
fpi
fpin
FPR
fprintf
FPTR
fputs
fread
FREELIKE
freeout
frmw
FSC
fscanf
fseek
fsize
FSP
fstack
fstat
fstype
ftimes
ftruncate
FUA
FUJITSU
fulldescr
fullpath
funcname
functiontype
functype
futimens
fvisibility
FWACT
fwug
fxshrxv
fxshrxw
fxshrxx
fxstat
gcc
gcmd
gcry
gdbserver
gdwarf
genctr
genhelp
GETAAS
GETANALOG
GETANAS
getblock
GETCTRL
getcwd
getenv
geteventnr
getevents
GETFL
GETGEO
getline
GETLUNINFO
GETNS
GETNSID
getopt
getpagesize
getpid
getprio
getprkey
getprstatus
getpwnam
getrlimit
getsockopt
gettext
gettime
gettimeofday
getuid
ggp
GILc
gmail
Gmb
gmp
gmtime
gmvec
GNUC
google
gosi
gpg
GPLv
GPR
gpt
GPTH
gpvec
groupmsg
groupnum
grp
grpid
guanjunxiong
guidcmp
Gunthorpe
gva
gvecs
Habcdefgh
Hac
Hannes
HASHTABLE
HBAs
hbtl
hcil
HCTM
hctma
hda
HDIO
hdr
hdreg
hds
HEADOFQUEUE
headswitch
helgrind
hellohello
hgp
Hio
hirarchichal
hitachi
hitachivantara
hmdlal
hmdlau
hmdlec
hmmaxd
hmmin
hmminds
hmpre
hostdev
hostgroup
hostgroupvec
hostid
hostno
hostnqn
hostnum
hosttraddr
hotplug
HOWTO
HPE
HSG
hsize
HSV
HSVX
htm
htole
huang
huawei
huggie
HUS
hwe
hwentry
hwhandler
HWORD
hwtable
Hzz
Iaccess
Ialua
IATTR
Ibindings
Ibio
iblacklist
IBlock
Icciss
Iccw
icdoff
Ichecker
Icommand
Iconfig
Idefaults
Idelay
Idetect
Idev
idevice
Idirectio
Idisablequeueing
IDR
IDTYPE
IDW
idx
iee
IEFS
iekey
iet
Iexclusive
Iexit
Ifast
IFBLK
ifdef
ifeq
IFILE
Ifind
ifndef
ifneq
Ifpin
IFT
igroup
Igrow
IGS
Ihelp
IID
Iimmediate
IIRC
ILEN
ilfact
Ilist
ILOG
Iloop
Imarginal
Imax
img
Imq
imultipath
Imultipathd
inbuf
incdir
includedir
inet
Inever
Infini
infinidat
infligh
Informatik
Infortrend
initpts
inotify
inp
inq
inqfail
INSPUR
Intelli
INTELLIFLASH
INTMC
INTMS
ints
inttypes
intval
Inum
inval
Invista
Invme
iocb
ioccsz
IOCQES
ioctl
ioctx
ioerr
Ioff
ionum
iopolicy
IOR
iorcsz
ioship
IOSQES
IOSTAT
IOTIMEOUT
Ioverrides
IOWR
ipaddress
Ipath
ipc
Ipolicy
Ipolling
Ipreferred
Iprio
Ipriorities
Iprkeys
Iproduct
Iproperty
Iprotocol
iqn
Iqueue
Iquit
IRequest
Ireservation
irgen
IRGRP
IRI
IROTH
Iround
irq
Irr
IRUSR
Isan
ISARK
isascii
isatty
ISBLK
ISCHR
iscsi
Isd
Isda
isdigit
Isection
Isg
Ishow
Ishu
Ishutdown
isip
Ismart
ISREG
isspace
Istderr
istype
isupper
isw
iswt
isxdigit
Isysfs
ITB
ITEST
ITIDS
Itur
itype
Iuid
Iundef
Iunsetmarginal
ius
Iuser
Ivalue
Ivendor
IWARP
IWatchdog
iwc
IWorld
IWUSR
iwwid
Iyes
jessie
Jie
Jike
jugement
Jun'ichi
Junxiong
Kaminario
kaos
kato
KBUILD
kde
kdev
Kergon
kerneldoc
kernelversion
keydump
KEYL
keyp
keyparam
keystr
KFIFO
Kheddache
kiewicz
klen
KMNRIO
kobject
kove
kpartx
kplv
kpt
kpvg
Kreibich
ksgl
Kunigk
kvm
kvp
labeldate
labperci
laio
LARGEFILE
lastlba
lastmsg
lastoddsector
lba
lbaf
LBART
LBCC
lbl
lck
lcmocka
lcp
LCSM
ldev
ldevmapper
LDFLAGS
ldif
ldl
ldmmp
ldr
lds
LEFTHAND
legacymbr
len
lenovo
lgr
libabigail
libaio
libata
libc
libcheck
libcheckcciss
libcheckdirectio
libcheckemc
libchecker
libcheckhp
libcheckrdac
libcheckreadsector
libchecktur
libcmocka
LIBDEPS
libdevmapper
libdir
libdm
libdmmp
libdmmpdir
libedit
libforeign
libgcc
libgcrypt
libgen
libjson
libmnt
libmount
libmp
libmpathcmd
LIBMPATHCOMMON
libmpathpersist
libmpathutil
libmpathvalid
libmultipath
libname
libprio
libreadline
libsg
libsystemd
libudev
libudevdir
liburcu
LIBUUID
lijie
LILO
linenr
lineprefix
linkat
linux
linuxvirtualserver
LIO
listman
litprefix
llbas
lld
LLDDs
llen
llimit
llseek
llu
lmount
lmpathcmd
lmpathutil
lmultipath
LNK
LNX
loadbalanced
localdomain
localtime
lockfs
lockp
logang
logarea
Logc
logdbg
logev
loglevel
logmsg
logq
logqueue
logsink
logvol
lomount
longstr
loopcreated
loopct
loopdev
loopinfo
loopro
lopart
losetup
lpa
lpi
lpo
lpol
lpou
lpthread
lrt
lsbit
lseek
lsi
lsize
lsp
LSTAR
LSTRIP
lsystemd
lttng
ludev
lun
lunhex
LUNZ
lurcu
LUs
lval
lvc
lvi
lvl
lvm
LVMCONF
lvmetad
lvremove
lvs
lvtoc
LWORD
lwz
MACDOC
macroisation
maintainership
maintype
maj
MAJORIE
makedev
Makefiles
MAKEFLAGS
malloc
mallocing
MALLOCLIKE
manon
MANPAGES
MAPGCINT
mapname
mapsize
mapuuid
Marowsky
Marzinski
matthias
maxavglatency
maxbit
MAXBUF
maxcmd
maxevents
maxlen
MAXPARTITIONS
MAXRETRY
MAXSLICES
MAXTYPES
maxval
mboot
mbr
MCL
mdts
Melo
memalign
memb
memccpy
Memcheck
memchr
memcmp
memcpy
meminit
memmove
mempcpy
memrchr
memset
METABUF
METAPOOL
METASEG
mgmt
miguel
MINALIGN
minavglatency
minio
minv
minval
misiek
mklabel
mknod
mkpart
mkstemp
mktemp
mlockall
mman
mmap
MMD
mnan
mndw
mnt
mntmt
modulename
modulesloaddir
modversion
moin
Monta
moretodo
mosteo
mountinfo
mov
movl
movq
mpa
MPAT
mpath
mpatha
mpathaa
mpathaaa
mpathaaaa
mpathb
MPATHc
mpathcmddir
mpathd
MPATHe
MPATHf
mpathfoo
mpathpersist
mpathpersistdir
mpathpr
MPATHTEST
mpathutildir
mpathvalid
mpathvaliddir
mpathz
mpathzz
mpathzzz
mpathzzzz
mpcontext
mpctxt
mpd
mpe
mpentry
mpp
mps
mpsmax
mpsmin
mptable
mptest
MPTH
mptr
mpvec
mqes
mrc
mrg
msbit
msdbd
msdos
msecs
msghdr
msgid
msgtable
msort
msp
mtfa
mtim
mul
multiarch
multiline
multipathc
multipathd
multipathdir
multipathed
multipathing
multipaths
multipathvec
multiport
multiqueue
mvc
mvista
mwilck
mxtmt
nabo
nabsn
nabspf
nacwu
nacyl
NAMELEN
namelist
namesiz
namesz
nanagrpid
nanosleep
nawun
nawupf
nbio
nbl
nblocks
nbusy
ncap
nchars
ncmd
nctrls
ncyl
ncylinders
NDEBUG
ndevice
needsync
netapp
netbsd
Netfinity
netlink
newcontents
newdep
newdev
newmember
newmp
newname
newsection
newstate
newtable
Nex
nexsan
nextpg
NEXTRA
nfds
nfind
NFINIDAT
nglobal
ngrps
nguid
nidl
nidt
nint
nkv
nlb
nlbaf
nline
NLMSG
nlmsghdr
nlsd
nmap
nmatch
Nmelody
nmic
nmpv
Nnet
nnsids
NOBDB
nochop
nodename
NODEV
NOEPV
NOFALLBACK
nofibre
noflush
nofunction
noheadings
noinline
NOIO
noiob
noiscsi
NOLOG
nomatch
nomatchprefix
NOMORE
nompath
noname
NONBLOCK
nondm
NONOPTIMIZED
nonroot
nop
nopaths
noprefix
noprod
NOPSC
noredir
noret
NOSCAN
NOSIGNAL
noslash
NOSUB
nosync
NOTFOUND
NOVERSION
nowwidmatch
npartitions
nparts
npath
npathgroup
npda
npdg
npermission
npr
npss
npwa
npwg
nqn
nqueue
nraddr
nrkey
nsa
nsattr
nsecs
nsect
nsectors
nsetidmax
nsfeat
nsid
nslices
nso
nssa
nssf
nsso
nssr
NSSRC
NSSRO
Nstorage
nsub
Nsymphony
nsze
ntimeout
ntracks
Ntricity
ntrks
numd
numdl
numdu
numrec
NUMSLICE
nuse
NVALGRIND
NVDISK
nvi
nvm
nvmcap
nvme
nvmedir
nvmeid
nvmexpress
nvmf
nvmset
nvmsetid
nvq
nvscc
nwpc
NXS
Oaa
Oaaa
Oaaaa
oacs
oaes
OBJDEPS
OBJS
ocs
offsetof
ofs
OFST
oipbp
oldact
oldchkrstate
oldprefix
oldpriority
oldset
oldstate
olivier
ompp
ompv
oncs
oneline
ONLYDIR
ontap
oom
openat
opencount
opendir
openlog
opensuse
opensvc
oprn
optarg
OPTCD
optflags
optind
optopt
optvals
Orecurse
origcrc
orr
osig
OSTYPE
Otech
outparams
outstatus
ovr
ovrpat
ovrwrt
owpass
Ozz
Ozzz
Ozzzz
Paa
Paaa
Paaaa
packname
palias
pamp
parameterdesc
parameterlist
parametertypes
parameterx
paramlen
paramp
parenth
PARN
parport
parseable
partmap
partname
PARTNO
partuuid
partx
passthrough
passthru
pathbuf
pathcmp
pathcount
pathe
pathfail
pathgroup
pathinfo
pathp
pathstate
pathvec
patsubst
Pba
pbar
pbuf
pce
pcentry
pcid
pcieport
pcmd
pcq
pctable
pcylcount
PDB
pdctx
pdf
PEERCRED
Perip
perldoc
perror
pfds
pgcmp
pgd
pgfailback
pgid
pgindex
pgp
pgpolicy
pgpolicyfn
pgpt
pgs
pgsize
pgstate
pgvec
pid
pidfile
pipermail
pkey
pkgconfdir
pkgconfig
PKGFILE
pkw
pld
plen
plm
plugh
plugindir
pmatch
pmbr
pmpp
pmr
PMRCAP
PMRCTL
PMRSTS
pname
PNR
pnum
POLLERR
pollfd
POLLHUP
POLLIN
POLLOUT
portid
posix
postprocessed
potab
powerstore
ppath
ppbuff
ppc
ppoll
ppp
pptes
pptr
ppvec
PRACT
PRCHK
prd
pread
preferredip
preferredsds
prefferedip
prefixdir
preg
prereq
prflag
prgeneration
pri
Primera
PRINFO
printfs
priopath
prioritizer
prios
PRIOVAL
PRIu
prkey
prm
prmscheck
proactively
procdev
progname
propsel
prot
prout
PRTPE
prtype
psd
PSDT
pselect
PSTATE
psyspath
ptable
ptc
ptct
ptes
pthread
ptpl
ptr
ptrdiff
PTRDS
ptreader
pushl
pushq
putchar
pwwn
Pzz
Pzzz
qas
qlen
qptype
qsize
qsort
queuedio
qus
qux
qwd
qword
qyy
qzz
racqa
rae
raige
ramani
rbp
rbx
RCAP
rcsts
rcu
RCV
rcx
rdac
Rdata
rdev
rdi
rdlock
rdma
RDONLY
RDWR
rdx
RDY
readcap
readdescr
readdir
READERLOCK
readfd
readfullstat
readfullstatus
readkeys
readline
readlink
readresv
readsector
realbuf
realloc
realpath
rebranded
RECFM
recfmt
reconfig
recv
RECVBUF
redhat
redir
redzone
refcount
REFD
refentry
refkw
reftag
refwwid
regcomp
regctl
regerror
regexec
regexes
regexps
regfree
reglist
regmatch
reinit
reinitialise
reinitialised
reinitialization
reinstantate
reldiff
relname
relro
reportcapabilities
reqs
rescap
RESERV
RESIZEINPLACE
resplen
RESTOREQ
restorequeueing
resv
resvdescr
retcode
retrigger
retval
revents
RFF
RFSTAT
rgo
rhabarber
Rii
rizsotto
rkey
RKP
rladfgvp
rldicr
rlen
rlfp
rlim
rlimit
rlookup
rlval
rlwinm
rmmod
RNL
ROCE
ROCEV
rol
rolq
rootkw
rootprefix
rootprefixdir
ror
rotldi
rpath
rpmbs
rport
rqs
rre
rrega
rrela
rrl
RSCN
rsi
rsnident
rsp
rspeed
RSSM
rst
rstrip
rsvd
rtd
RTLD
rtp
rtpg
rtpi
RTVL
rtype
rudolph
runtimedir
rwlock
rxy
sagv
sanact
sandisk
sanicap
sas
sasv
SATAB
savep
saveptr
sbb
sbp
sbsize
sbuf
SCAL
scandir
sched
schid
scid
scmd
SCNDRY
SCNu
SCNx
scs
scsi
scsilun
SCSITRANSPORT
SCXTF
SCXTV
sda
sdaa
sdaw
sdb
sdc
sde
sdo
sdsname
sdx
Seagate
secnr
SECONDEXPANSION
secp
secpercyl
secperunit
secsize
secsz
sectcheck
sectionlist
sectorsz
SECTSIZ
sectype
selftest
Sensedata
SENSEINFOBYTES
sensekey
seqno
seqnum
servact
ses
setbuf
setcancelstate
setclock
setdetachstate
SETFD
SETFL
setgeometry
setjmp
SETLK
SETLKW
setlogmask
setmarginal
SETMASK
setpath
setprkey
setprstatus
setrlimit
setscheduler
setsid
setstacksize
SFA
SFE
sgio
sgl
sgs
shbader
shm
SHN
shortlog
SHST
Shyam
shyamsundar
sid
sievers
sigaction
sigaddset
sigalrm
sigdelset
sigemptyset
sigend
sigfillset
sighup
SIGINT
sigmask
signo
SIGPIPE
sigset
SIGTERM
sigusr
simplecmd
skr
slba
slen
slist
SMSFG
smultipath
SND
snprint
snprintf
snu
sockaddr
socklen
softdep
Soltau
somedev
somefile
someloop
soname
SONAS
sourceware
spam
SPANP
sparecyl
sparespercyl
sparespertrack
spc
spi
sprintf
spsp
sqes
SQFLOW
sqid
SQS
sqsize
srand
srandom
srclen
SRCLOC
srcpath
SRCTREE
srinivas
Srinivasan
srl
srp
ssa
sscanf
sseek
ssize
ssvid
STAC
stackoverflow
STACKPROT
stacksize
standalone
starttime
statbuf
statedir
stbuf
stdarg
stdbool
stddef
stdint
stdio
stdlib
Storwize
STPG
strbuf
strcat
strchop
strchr
strcmp
strcpy
strcspn
strdup
strerr
strerror
strlcat
strlcpy
strlen
strmatch
strncat
strncmp
strncpy
strpbrk
strrchr
strs
strsep
strspn
strstr
strtod
strtok
strtol
strtoul
structs
strvec
stw
STX
subcnt
subdir
subl
subnqn
subopt
subq
substr
subsys
subsysnqn
subu
Sundar
superblocks
suse
svg
switchgroup
switchpg
sws
symmetrix
symver
sys
sysattr
syscall
SYSCD
sysf
sysinit
syslibdir
sysmacros
sysname
syspath
SZU
Targ
targetname
tbad
tbio
tbl
tcp
tdevice
tdiff
tdtype
tegile
Tek
TELEM
tempbuff
TEMPFILE
tempname
testcancel
testconf
TESTCONFDIR
TESTDEPS
TESTDIR
testname
tgill
tgtdev
tgtid
tgtname
tgz
thirdpartydir
thm
thr
THREADID
threadinfo
TIDS
timedlock
timedwait
timep
timespec
timespeccmp
timespecsub
timeval
tjansen
TLS
tlv
tmo
tmore
tmp
tmpfiles
tmpfilesdir
tmpl
tmpname
tmpq
tmpwwid
tmultipath
tnvmcap
tocptr
toh
tokener
toldelay
tolower
TOPDIR
tpg
tpgd
TPGDE
tprotocol
tput
Tqu
tracepoint
tracepointargs
tracepointname
trackskew
traddr
transid
transitioning
translen
transportid
TRBAL
treq
tridge
trimed
trival
trk
trkseek
TRN
trnptid
troff
trq
trsvcid
trtype
trunc
trylock
tsas
Tter
ttest
ttr
ttwo
Tutf
twaugh
twwid
typedef
typeind
typeof
UAPI
UAS
uatomic
UBS
UCHAR
ucharp
ucp
ucred
udate
udd
udev
udevadm
udevd
UDEVDIR
udevice
udevrulesdir
udle
Ueda
uev
uevent
ueventloop
uevlisten
uevq
uevqloop
uid
uint
uintmax
uintptr
ULONG
unaddressable
unalloc
UNAVAIL
uncor
undistributable
UNICODE
UNIMP
uninit
uninitialize
unistd
unitdir
unixware
unlinkat
unmark
unmunged
UNPUBLISH
unrecognised
unref
unreffing
unsetmarginal
unsetprkey
unsetprstatus
unspec
unvmcap
unwatch
UOZ
updatepr
UPTO
urcu
usb
usec
userdata
USERREQ
userspace
USHRT
usleep
usr
usrlibdir
UTF
UTIME
utsname
uuid
uuidout
uuidtmp
uvents
uveq
UWord
uxclnt
uxlsnr
uxlsnrloop
uxsock
valgrind
VALIST
vanassche
Vantara
vargs
varoqui
vasprintf
VDASD
vec
versioning
Vess
Vexata
vfn
vfprintf
vfs
vgdb
vgr
vgremove
vgw
vid
VIRT
vlabel
vlen
VMAX
vnd
vnet
VNX
volid
volkey
vollbl
VOLSER
VOLSQ
vpd
vpdbuf
vpdtest
VPLEX
vpr
VRAID
VRB
vre
vrfy
VSN
vsnprintf
vsyslog
vtoc
VTrak
vwc
Waddress
waitevent
waiteventloop
wakka
WARNFLAGS
waskiewicz
watievent
wbus
Wcast
wctemp
wdc
wds
wei
weightedpath
wenth
Werror
Wextra
Wformat
WFORMATOVERFLOW
wholedisk
wiid
Wilck
wildcards
wlen
Wmissing
Wno
WNOCLOBBERED
workaround
WORKDIR
workflows
WRITERLOCK
WRLCK
wrlock
WRONLY
WRRU
wrt
Wuchongyun
wucy
wwid
WWIDa
wwidmatch
WWIDMAX
WWIDMAXM
WWIDNOMORE
wwn
wwnn
wwnpn
wwnstr
wwpn
WWUI
WWWW
Wysochanski
xaa
xab
xaffe
XBSD
xcd
xchg
xchgl
xchgq
xdeadbeef
xedb
xef
xer
xfer
xff
xffef
xffff
xfffff
xfffffff
xffffffff
xfffffffffffffff
xfv
xfz
xiotech
xmalloc
xor
XPD
Xport
Xserve
XSG
xstrncpy
Xtrem
xyzzy
Yaari
yacine
ydd
YNU
YYY
YZK
ZEBI
zezette
zfcp
zram
zte
Zucchi
zzq
Some files were automatically ignored 🙈

These sample patterns would exclude them:

^libmpathpersist/Makefile$
^libmpathvalid/Makefile$
^libmultipath/prioritizers/Makefile$
^mpathpersist/Makefile$
^multipathd/Makefile$

You should consider adding them to:

.github/actions/spelling/excludes.txt

File matching is via Perl regular expressions.

To check these files, more of their words need to be in the dictionary than not. You can use patterns.txt to exclude portions, add items to the dictionary (e.g. by adding them to allow.txt), or fix typos.

To accept these unrecognized words as correct and update file exclusions, you could run the following commands

... in a clone of the [email protected]:openSUSE/multipath-tools.git repository
on the coverity branch (ℹ️ how do I use this?):

curl -s -S -L 'https://raw.githubusercontent.com/check-spelling/check-spelling/main/apply.pl' |
perl - 'https://github.com/openSUSE/multipath-tools/actions/runs/7425246817/attempts/1'
Available 📚 dictionaries could cover words not in the 📘 dictionary
Dictionary Entries Covers Uniquely
cspell:php/dict/php.txt 1689 110 30
cspell:python/src/python/python-lib.txt 2417 72 16
cspell:cpp/src/stdlib-c.txt 278 66 13
cspell:node/dict/node.txt 891 54 13
cspell:java/src/java.txt 2464 29 13

Consider adding them (in .github/workflows/spelling.yml) for uses: check-spelling/check-spelling@main in its with:

      with:
        extra_dictionaries:
          cspell:php/dict/php.txt
          cspell:python/src/python/python-lib.txt
          cspell:cpp/src/stdlib-c.txt
          cspell:node/dict/node.txt
          cspell:java/src/java.txt

To stop checking additional dictionaries, add (in .github/workflows/spelling.yml) for uses: check-spelling/check-spelling@main in its with:

check_extra_dictionaries: ''
Pattern suggestions ✂️ (24)

You could add these patterns to .github/actions/spelling/patterns.txt:

# Automatically suggested patterns
# hit-count: 1057 file-count: 22
# https://www.gnu.org/software/groff/manual/groff.html
# man troff content
\\f[BCIPR]

# hit-count: 169 file-count: 26
# Compiler flags (Unix, Java/Scala)
# Use if you have things like `-Pdocker` and want to treat them as `docker`
(?:^|[\t ,>"'`=(])-(?:(?:J-|)[DPWXY]|[Llf])(?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,})

# hit-count: 169 file-count: 26
# Compiler flags (Windows / PowerShell)
# This is a subset of the more general compiler flags pattern.
# It avoids matching `-Path` to prevent it from being treated as `ath`
(?:^|[\t ,"'`=(])-(?:[DPL](?=[A-Z]{2,})|[WXYlf](?=[A-Z]{2,}|[A-Z][a-z]|[a-z]{2,}))

# hit-count: 133 file-count: 4
# This does not cover multiline strings, if your repository has them,
# you'll want to remove the `(?=.*?")` suffix.
# The `(?=.*?")` suffix should limit the false positives rate
# printf
%(?:(?:(?:hh?|ll?|[jzt])?[diuoxn]|l?[cs]|L?[fega]|p)(?=[a-z]{2,})|(?:X|L?[FEGA]|p)(?=[a-zA-Z]{2,}))(?!%)(?=[_a-zA-Z]+(?!%)\b)(?=.*?['"])

# hit-count: 108 file-count: 28
# hex digits including css/html color classes:
(?:[\\0][xX]|\\u|[uU]\+|#x?|\%23)[0-9_a-fA-FgGrR]*?[a-fA-FgGrR]{2,}[0-9_a-fA-FgGrR]*(?:[uUlL]{0,3}|[iu]\d+)\b

# hit-count: 51 file-count: 2
# '/"
\\\([ad]q

# hit-count: 45 file-count: 15
# C network byte conversions
(?:\d|\bh)to(?=[a-z])|to(?=[adhiklpun]\()

# hit-count: 44 file-count: 7
# in [email protected]+, printf markers aren't automatically consumed
# printf markers
(?<!\\)\\[nrt](?=[a-z]{2,})

# hit-count: 44 file-count: 7
# alternate markers if you run into latex and friends
(?<!\\)\\[nrt](?=[a-z]{2,})(?=.*['"`])

# hit-count: 43 file-count: 7
# version suffix <word>v#
(?:(?<=[A-Z]{2})V|(?<=[a-z]{2}|[A-Z]{2})v)\d+(?:\b|(?=[a-zA-Z_]))

# hit-count: 34 file-count: 16
# https/http/file urls
(?:\b(?:https?|ftp|file)://)[-A-Za-z0-9+&@#/%?=~_|!:,.;]+[-A-Za-z0-9+&@#/%=~_|]

# hit-count: 17 file-count: 1
# perl regex test
[!=]~ (?:/.*/|m\{.*?\}|m<.*?>|m([|!/@#,;']).*?\g{-1})

# hit-count: 11 file-count: 2
# GitHub SHAs (markdown)
(?:\[`?[0-9a-f]+`?\]\(https:/|)/(?:www\.|)github\.com(?:/[^/\s"]+){2,}(?:/[^/\s")]+)(?:[0-9a-f]+(?:[-0-9a-zA-Z/#.]*|)\b|)

# hit-count: 10 file-count: 3
# base64 encoded content
([`'"])[-a-zA-Z=;:/0-9+]{3,}=\g{-1}

# hit-count: 8 file-count: 5
# hex runs
\b[0-9a-fA-F]{16,}\b

# hit-count: 7 file-count: 3
# GitHub actions
\buses:\s+[-\w.]+/[-\w./]+@[-\w.]+

# hit-count: 7 file-count: 1
# URL escaped characters
\%[0-9A-F][A-F](?=[A-Za-z])

# hit-count: 5 file-count: 3
# tar arguments
\b(?:\\n|)g?tar(?:\.exe|)(?:(?:\s+--[-a-zA-Z]+|\s+-[a-zA-Z]+|\s[ABGJMOPRSUWZacdfh-pr-xz]+\b)(?:=[^ ]*|))+

# hit-count: 1 file-count: 1
# Internet Archive
\barchive\.org/web/\d+/(?:[-\w.?,'/\\+&%$#_:]*)

# hit-count: 1 file-count: 1
# stackexchange -- https://stackexchange.com/feeds/sites
\b(?:askubuntu|serverfault|stack(?:exchange|overflow)|superuser).com/(?:questions/\w+/[-\w]+|a/)

# hit-count: 1 file-count: 1
# IPv6
\b(?:[0-9a-fA-F]{0,4}:){3,7}[0-9a-fA-F]{0,4}\b

# hit-count: 1 file-count: 1
# uuid:
\b[0-9a-fA-F]{8}-(?:[0-9a-fA-F]{4}-){3}[0-9a-fA-F]{12}\b

# hit-count: 1 file-count: 1
# assign regex
= /[^*]*?(?:[a-z]{3,}|[A-Z]{3,}|[A-Z][a-z]{2,}).*/

# hit-count: 1 file-count: 1
# Non-English
[a-zA-Z]*[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3}[a-zA-ZÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]*|[a-zA-Z]{3,}[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź]|[ÀÁÂÃÄÅÆČÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝßàáâãäåæčçèéêëìíîïðñòóôõöøùúûüýÿĀāŁłŃńŅņŒœŚśŠšŜŝŸŽžź][a-zA-Z]{3,}

Errors (4)

See the 📜action log or 📝 job summary for details.

❌ Errors Count
ℹ️ candidate-pattern 54
❌ check-file-path 515
❌ forbidden-pattern 4
ℹ️ noisy-file 5

See ❌ Event descriptions for more information.

Please sign in to comment.