[Pkg-sssd-devel] Bug#1136590: sssd uses pidof but does not depend on procps
Gioele Barabucci
gioele at debian.org
Thu May 14 00:32:45 BST 2026
Source: sssd
Version: 2.12.0-4
Usertags: pidof-without-procps
Dear maintainer(s) of sssd,
it appears that sssd 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 sssd
that use `pidof` at runtime;
* via the `Build-Depends:` field of sssd, 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 sssd, 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 sssd uses `pidof` due to the following
code snippets:
```
path: sssd_2.12.0-2/src/tests/tests/multihost/alltests/test_all_misc.py
client.run_command(f"echo 'Secret123'|sssctl user-checks -a auth foo1@{ds_instance_name}")
time.sleep(3)
client.run_command('ls -al /proc/$(pidof sssd_be)/fd > /tmp/before_count')
time.sleep(2)
n_log_bfr = count_pattern_logs(multihost, "/tmp/before_count", "pipe:")
path: sssd_2.12.0-2/src/tests/tests/multihost/alltests/test_all_misc.py
client.run_command(f"echo 'Secret123'|sssctl user-checks -a auth foo{i}@{ds_instance_name}")
time.sleep(3)
client.run_command(f'ls -al /proc/$(pidof sssd_be)/fd > /tmp/after_count{i}')
time.sleep(2)
n_log_afr = []
path: sssd_2.12.0-2/src/tests/tests/multihost/alltests/test_sssctl_ldap.py
find = re.compile(r'slapd stopped')
find.search(cmd.stdout_text)
sss_kill = 'kill -10 `pidof sssd`'
multihost.client[0].run_command(sss_kill, raiseonerr=False)
domain_status = 'sssctl domain-status %s' % ds_instance_name
path: sssd_2.12.0-2/src/tests/tests/multihost/alltests/test_automount.py
tcpdump_cmd = 'tcpdump -s0 host %s -w %s' % (ldap_host, auto_pcapfile)
multihost.client[0].run_command(tcpdump_cmd, bg=True)
# pid_cmd = 'pidof tcpdump'
# pid = multihost.client[0].run_command(pid_cmd, raiseonerr=False)
tools = sssdTools(multihost.client[0])
path: sssd_2.12.0-2/src/tests/tests/multihost/ad/test_adparameters_ported.py
client.clear_sssd_cache()
pid_cmd = multihost.client[0].run_command(
'pidof sssd_be', raiseonerr=False
)
time.sleep(15)
path: sssd_2.12.0-2/src/tests/tests/system/tests/test_identity.py
# Kill backend and remove the delay
client.host.conn.run("kill -KILL $(pidof sssd_be)")
client.tc.remove_delay(ldap)
path: sssd_2.12.0-2/src/tests/tests/multihost/alltests/test_services.py
multihost.client[0].run_command('echo "PIZZA=YUMMY" > /etc/sysconfig/sssd', raiseonerr=False)
multihost.client[0].service_sssd('restart')
process_id = (exceute_cmd(multihost, "pidof sssd").stdout_text.split()[0])
file_for_grep = f"/proc/{process_id}/environ"
grep_cmd = f'grep "PIZZA=YUMMY" {file_for_grep}'
path: sssd_2.12.0-2/src/tests/tests/multihost/alltests/test_services.py
multihost.client[0].service_sssd('restart')
proces_id = int(exceute_cmd(multihost,
"pidof sssd").stdout_text.split()[0])
exceute_cmd(multihost, f"kill -1 {proces_id}")
with pytest.raises(subprocess.CalledProcessError):
path: sssd_2.12.0-2/src/tests/tests/multihost/alltests/test_netgroup.py
if 'Offline' in chk_status.stdout_text.strip():
status = 'PASS'
pid_nss = "pidof sssd_nss"
chk_pid1 = multihost.client[0].run_command(pid_nss, raiseonerr=False)
pid_nss1 = chk_pid1.stdout_text.strip()
```
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
More information about the Pkg-sssd-devel
mailing list