Description of problem: ucarp service script fails (file /usr/libexec/ucarp/ucarp) Version-Release number of selected component (if applicable): ucarp-1.5.2.22.el7 (CentOS 7) How reproducible: Always Steps to Reproduce: 1.yum update cp -avx /usr/libexec/ucarp/ucarp /usr/libexec/ucarp/ucarp-20180331 cp -avx /usr/libexec/ucarp/ucarp.rpmnew /usr/libexec/ucarp/ucarp systemctl restart ucarp 2.systemctl status ucarp Actual results: Started with debug bash - changed in file /usr/libexec/ucarp: #! /bin/bash -xv [root@intraweb ucarp]# systemctl start ucarp Job for ucarp failed because the control process exited with error code. See "systemctl status ucarp" and "journalctl -xe" for details. [root@intraweb ucarp]# journalctl -xe dub 17 22:45:41 intraweb ucarp[31983]: + echo -n 'Starting common address redundancy protocol daemon: ' dub 17 22:45:41 intraweb ucarp[31983]: Starting common address redundancy protocol daemon: + get_files vip-001 dub 17 22:45:41 intraweb ucarp[31983]: + _cfg=vip-001 dub 17 22:45:41 intraweb ucarp[31983]: find ${CONFDIR} -maxdepth 1 -type f -name "vip-${_cfg}.conf" -printf "%f\n" | dub 17 22:45:41 intraweb ucarp[31983]: ++ find /etc/ucarp -maxdepth 1 -type f -name vip-vip-001.conf -printf '%f\n' dub 17 22:45:41 intraweb ucarp[31983]: ++ egrep '^vip-[[:digit:]]+\.conf$' dub 17 22:45:41 intraweb ucarp[31983]: ++ LC_COLLATE=C dub 17 22:45:41 intraweb ucarp[31983]: ++ sort dub 17 22:45:41 intraweb ucarp[31983]: + FILES= dub 17 22:45:41 intraweb ucarp[31983]: + '[' -z '' ']' dub 17 22:45:41 intraweb ucarp[31983]: + /usr/bin/logger -p daemon.notice -t ucarp 'no virtual addresses are configured in / dub 17 22:45:41 intraweb ucarp[31983]: + failure Expected results: ucarp to start and work Additional info: 1. Bug in line nr 14 in file /usr/libexec/ucarp/ucarp, set new variable in file /etc/ucarp/vip-001.conf for password. Correct line number 14 /usr/libexec/ucarp/ucarp. Old line: FILES=`find ${CONFDIR} -maxdepth 1 -type f -name "vip-${_cfg}.conf" \ New (corrected) line: FILES=`find ${CONFDIR} -maxdepth 1 -type f -name "${_cfg}.conf" \ 2. Set new variable in file /etc/ucarp/vip-001.conf: PASSFILE="/etc/ucarp/vip-001.pwd" 3. Create new file for password variable: echo "MySecretpassword" >/etc/ucarp/vip-001.pwd 4. Restart service: systemctl restart ucarp
File is correct on fresh installs, but since it's marked config noreplace, it has to be manually corrected on existing installs.
Just did a fresh install on CentOS 7.6 and this bug still exists. OS: CentOS Linux release 7.6.1810 (Core) Pkg ver: ucarp-1.5.2-22.el7.x86_64
Note to future me and anyone else that stumbles across this: This is how to interact with ucarp interfaces now: systemctl status ucarp This is apparently how it was done prior to the current release: systemctl status ucarp So if you upgrade ucarp, notice the rpmnew file and decide you want to get current, be sure to stop your existing service(s) with the old syntax before moving the rpmnew file in place. Then move the rpmnew file in place and start the service(s) with the new syntax.