Source: resource-agents
Version: 1:4.18.0-1
Usertags: pidof-without-procps

Dear maintainer(s) of resource-agents,

it appears that resource-agents uses `pidof` in its testsuite, or that
at least one of its binary packages uses `pidof` at runtime.
Historically, `pidof` was provided by the Essential package
`sysvinit-tools`, making an explicit dependency unnecessary. However
`pidof` will soon be moved to `procps` and will no longer be part of
the Essential set.

Please add an explicit dependency on `procps`:

* via the `Depends:` field of all binary packages of resource-agents
  that use `pidof` at runtime;
* via the `Build-Depends:` field of resource-agents, if `pidof` is
  used in tests run at build-time;
* via the `Depends:` field of `debian/control/tests`, if `pidof` is
  used in autopkgtests.

To prevent any disruption for users of resource-agents, please add
this dependency now, before `pidof` is moved from `sysvinit-utils` to
`procps`. Alternatively, you could remove all uses of `pidof`.

It is believed that resource-agents uses `pidof` due to the following
code snippets:

```
path: resource-agents_1:4.17.0-2/heartbeat/vmware
# Check for mandatory files presence and consistency
vmware_validate() {
  if [ -z "`pidof vmware-hostd`" ]; then
    ocf_log err "vmware-hostd is not running"
    exit $OCF_ERR_GENERIC


path: resource-agents_1:4.17.0-2/rgmanager/src/resources/svclib_nfslock.in
{
        declare dev family addr maskbits ip_name
        declare lockd_pid=$(pidof lockd)
        declare nl_dir=$1


path: resource-agents_1:4.17.0-2/heartbeat/VIPArip
                if $GREP $OCF_RESKEY_ip $RIPDCONF >/dev/null 
                then
                        if pidof ripd >/dev/null
                        then
                                return $OCF_SUCCESS


path: resource-agents_1:4.17.0-2/heartbeat/redis.in
                elif (( info[loading] == 1 )); then
                        sleep "${info[loading_eta_seconds]}"
                elif pidof $(basename "$REDIS_SERVER") >/dev/null; then
                        # unknown error, but the process still exists.
                        # This check is mainly because redis daemonizes before 
it starts listening, causing `redis-cli` to fail


path: resource-agents_1:4.17.0-2/heartbeat/redis.in
        pid="$(<"$REDIS_PIDFILE")"
        pidof $(basename "$REDIS_SERVER") | grep -q "\<$pid\>" || return 
$OCF_NOT_RUNNING
        ocf_log debug "monitor: redis-server running under pid $pid"


path: resource-agents_1:4.17.0-2/rgmanager/src/resources/nfsserver.sh.in
        while : ; do
                pids=$(pidof $1)
                [ -z "$pids" ] && return 0
                kill -9 $pids


path: resource-agents_1:4.17.0-2/rgmanager/src/resources/nfsserver.sh.in
        cp -f /var/lib/nfs/statd/sm/* /var/lib/nfs/statd/sm-ha 2> /dev/null
        if pidof rpc.statd &> /dev/null; then
                ocf_log debug "rpc.statd is already running"
                return 0


path: resource-agents_1:4.17.0-2/rgmanager/src/resources/nfsserver.sh.in
        while : ; do
                pids=$(pidof $1)
                [ -z "$pids" ] && return 0
                kill $pids


path: resource-agents_1:4.17.0-2/rgmanager/src/resources/smb.sh.in
        # First generate a list of candidate pids.
        pidof $daemonName > $tmpfile
        if [ $? -ne 0 ]; then
                ocf_log debug "kill_daemon_by_arg: no pids for $daemonName"


path: resource-agents_1:4.17.0-2/rgmanager/src/resources/vm.sh.in
        # libvirtd is required for migration.
        #
        pid=$(pidof libvirtd)
        if [ -z "$pid" ]; then
                # attempt to determine if vm is running from pid file
```

Feel free to close this issue if this is a false positive (for example
if this code is in an unreachable code path).

Regards,

-- 
Gioele Barabucci

Reply via email to