HomeFreeBSD

pfind, pfind_any: Correct zombie logic

Description

pfind, pfind_any: Correct zombie logic

SVN r340744 erroneously changed pfind() to return any process including
zombies and pfind_any() to return only non-zombie processes.

In particular, this caused kill() on a zombie process to fail with [ESRCH].
There is no direct test case for this but /usr/tests/bin/sh/builtins/kill1.0
occasionally triggers it (as reported by lwhsu).

Conversely, returning zombies from pfind() seems likely to violate
invariants and cause panics, but I have not looked at this.

PR: 233646
Reviewed by: mjg, kib, ngie
Differential Revision: https://reviews.freebsd.org/D18665

Details

Provenance
jillesAuthored on
Reviewer
mjg
Differential Revision
D18665: pfind, pfind_any: Correct zombie logic
Parents
rS342571: MFC r342298:
Branches
Unknown
Tags
Unknown