[Bug 1874824] Re: pgrep reports error "cannot allocate" when run without stack limit
William Wilson
1874824 at bugs.launchpad.net
Wed Apr 7 15:25:15 UTC 2021
Robie,
pgrep and pkill are sharing the same code. Essentially pkill runs pgrep
and then issues a kill signal to the resulting pid. Therefore this fix
applies to both pkill and pgrep. Additionally, the source of the problem
comes from the behavior of `sysconf(_SC_ARG_MAX)` changing in newer
kernels. This function call only exists in one place in the procps
codebase, so no other commands are affected by the same issue.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to procps in Ubuntu.
https://bugs.launchpad.net/bugs/1874824
Title:
pgrep reports error "cannot allocate" when run without stack limit
Status in procps package in Ubuntu:
Fix Released
Status in procps source package in Focal:
In Progress
Status in procps source package in Groovy:
In Progress
Status in procps source package in Hirsute:
Fix Released
Status in procps package in Debian:
New
Bug description:
[Impact]
- Users who have ulimit set high would see either slow
or failed pgrep and pkill commands
- Users who have ulimit set to unlimited would see
failed pgrep and pkill commands
- This bug occurs because the behavior of sysconf(_SC_ARG_MAX)
changed with a newer version of the kernel.
[Test Case]
- set the ulimit to unlimited by running `ulimit -S -s unlimited`
- run `pgrep bash` to see that the "cannot allocate" error is
printed and the command has failed.
[Where Problems Could Occur]
- We have set upper and lower limits on the size of the malloc, but
if further kernel versions break the call to sysconf in
unexpected ways we could still see problems.
[Original Description]
If you have no stack limit (ulimit -S -s unlimited), any pgrep call
will fail with an error:
> pgrep vim
pgrep: cannot allocate 4611686018427387903 bytes
If you have a high stack limit (e.g. ulimit -S -s 500000), pgrep is
very slow:
> time pgrep vim
2196
real 8.48s user 8.40s syst 0.07s busy 99% rmem 253444
The relevant upstream bug report could be: https://gitlab.com/procps-ng/procps/-/issues/152
Archlinux bug report: https://bugs.archlinux.org/task/66093
procps:
Installed: 2:3.3.16-1ubuntu2
500 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/procps/+bug/1874824/+subscriptions
More information about the foundations-bugs
mailing list