public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [BUG 2.4.6] PPID of a process is set to itself
@ 2001-07-17  4:21 Tachino Nobuhiro
  2001-07-17  4:41 ` Linus Torvalds
  0 siblings, 1 reply; 7+ messages in thread
From: Tachino Nobuhiro @ 2001-07-17  4:21 UTC (permalink / raw)
  To: linux-kernel


Hi,

When I am playing with clone system call, I found the case the cloned process
becomes the zombie which is not reaped because the PPID of the process is
set to itself. The test program are following.



#include <sched.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

int	stack[2048];

int
func(void *p)
{
	exit(0);
}

int
main(int argc, char *argv[])
{
	clone(func, &stack[2048],
		CLONE_VM|CLONE_FS|CLONE_FILES|CLONE_SIGHAND|CLONE_THREAD,
		NULL);

	sleep(1);
	exit(0);
}

Following patch fixes the bug, but I don't know this is correct. Can
someone please explain me why in forget_original_parent(), the parent of
processes in a thread group is set to another process in the thread
group?

diff -u -r linux.org/kernel/exit.c linux/kernel/exit.c
--- linux.org/kernel/exit.c	Sat May  5 06:44:06 2001
+++ linux/kernel/exit.c	Tue Jul 17 11:06:59 2001
@@ -168,7 +168,7 @@
 			/* We dont want people slaying init */
 			p->exit_signal = SIGCHLD;
 			p->self_exec_id++;
-			p->p_opptr = reaper;
+			p->p_opptr = p == reaper ? child_reaper : reaper;
 			if (p->pdeath_signal) send_sig(p->pdeath_signal, p, 0);
 		}
 	}

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2001-07-17 23:26 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2001-07-17  4:21 [BUG 2.4.6] PPID of a process is set to itself Tachino Nobuhiro
2001-07-17  4:41 ` Linus Torvalds
2001-07-17  6:10   ` Tachino Nobuhiro
2001-07-17  6:40     ` Linus Torvalds
2001-07-17  7:08       ` Ulrich Drepper
2001-07-17 23:13         ` huge number of context switches under 2.2.x with SMP & threaded apps bert hubert
2001-07-17 23:29           ` huge number of context switches under 2.2.x with SMP & threa Davide Libenzi

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox