From owner-freebsd-bugs@freebsd.org Mon Mar 21 20:38:31 2016 Return-Path: Delivered-To: freebsd-bugs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 07018AD8239 for ; Mon, 21 Mar 2016 20:38:31 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id C8C1361C for ; Mon, 21 Mar 2016 20:38:30 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id u2LKcUmc087171 for ; Mon, 21 Mar 2016 20:38:30 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 208188] multiple identical wait4 results for ptraced processes Date: Mon, 21 Mar 2016 20:38:30 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: kern X-Bugzilla-Version: 10.2-RELEASE X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Some People X-Bugzilla-Who: joss.upton@yahoo.com X-Bugzilla-Status: New X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-bugs@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version rep_platform op_sys bug_status bug_severity priority component assigned_to reporter attachments.created Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Mar 2016 20:38:31 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D208188 Bug ID: 208188 Summary: multiple identical wait4 results for ptraced processes Product: Base System Version: 10.2-RELEASE Hardware: Any OS: Any Status: New Severity: Affects Some People Priority: --- Component: kern Assignee: freebsd-bugs@FreeBSD.org Reporter: joss.upton@yahoo.com Created attachment 168466 --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D168466&action= =3Dedit waitx2.c demonstrate the multiple / identical wait4() results. When ptrace'n a process, wait4() returns the same pid/status multiple times= .=20 This is when a process is ptrace'd, it gets a new parent and saves its old parent (in my case both the new parent and the old are the same process).=20 Then, in proc_reap() called from, e.g. wait4(), the ptrace'd process is reparented back to its "real" parent and an additional SIGCHLD is generated. The attached program demonstrates the problem... On 10.2 it produces output like: 0: pid=3D1348 stopped(5) 1: pid=3D1348 exited(0) 2: pid=3D1348 exited(0) It's impossible to differentiate between 1 & 2 unless I go out of my way to remember that I've already seen process 1348 WIFEXITED or WIFSIGNALED befor= e. The fix is to catch the superfluous SIGCHLD (when the realparent is the pro= cess currently waiting on the process) and stub it out. Patch and example progr= am attached. --=20 You are receiving this mail because: You are the assignee for the bug.=