svn commit: r269656 - in head: bin/ps sys/kern sys/sys
bdrewery at FreeBSD.org
Thu Aug 7 18:45:36 UTC 2014
On 8/7/2014 12:47 AM, Konstantin Belousov wrote:
> Author: kib
> Date: Thu Aug 7 05:47:53 2014
> New Revision: 269656
> URL: http://svnweb.freebsd.org/changeset/base/269656
> Correct the problems with the ptrace(2) making the debuggee an orphan.
> One problem is inferior(9) looping due to the process tree becoming a
> graph instead of tree if the parent is traced by child. Another issue
> is due to the use of p_oppid to restore the original parent/child
> relationship, because real parent could already exited and its pid
> reused (noted by mjg).
> Add the function proc_realparent(9), which calculates the parent for
> given process. It uses the flag P_TREE_FIRST_ORPHAN to detect the head
> element of the p_orphan list and than stepping back to its container
> to find the parent process. If the parent has already exited, the
> init(8) is returned.
> Move the P_ORPHAN and the new helper flag from the p_flag* to new
> p_treeflag field of struct proc, which is protected by proctree lock
> instead of proc lock, since the orphans relationship is managed under
> the proctree_lock already.
> The remaining uses of p_oppid in ptrace(PT_DETACH) and process
> reapping are replaced by proc_realparent(9).
> Phabric: D417
> Reviewed by: jhb
> Tested by: pho
> Sponsored by: The FreeBSD Foundation
> MFC after: 2 weeks
-------------- next part --------------
A non-text attachment was scrubbed...
Size: 488 bytes
Desc: OpenPGP digital signature
More information about the svn-src-all