All of lore.kernel.org
 help / color / mirror / Atom feed
From: Oleg Nesterov <oleg@tv-sign.ru>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>,
	viro@ftp.linux.org.uk, kamezawa.hiroyu@jp.fujitsu.com,
	linux-kernel@vger.kernel.org, sam@ravnborg.org,
	netdev@vger.kernel.org, Pavel Emelyanov <xemul@openvz.org>,
	Sukadev Bhattiprolu <sukadev@us.ibm.com>,
	Paul Menage <menage@google.com>,
	"Eric W. Biederman" <ebiederm@xmission.com>
Subject: Re: 2.6.23-mm1 thread exit_group issue
Date: Sat, 13 Oct 2007 15:48:20 +0400	[thread overview]
Message-ID: <20071013114820.GA121@tv-sign.ru> (raw)
In-Reply-To: <20071012180349.b4b4c2c3.akpm@linux-foundation.org>

On 10/12, Andrew Morton wrote:
>
> On Fri, 12 Oct 2007 15:47:59 -0400
> Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> wrote:
> 
> > Hi Andrew,
> > 
> > I noticed a regression between 2.6.23-rc8-mm2 and 2.6.23-mm1 (with your
> > hotfixes). User space threads seems to receive a ERESTART_RESTARTBLOCK
> > as soon as a thread does a pthread_join on them. The previous behavior
> > was to wait for them to exit by taking a futex.

No, the reason is that pthread_join() succeeds while it shouldn't. The main
thread does exit_group() and kills the sub-thread sleeping in nanosleep.
ERESTART_RESTARTBLOCK is not delivered to the user-space (sub-thread is dying),
it is just reported by gdb.

> > I provide a toy program that shows the problem. On 2.6.23-rc8-mm2, it
> > loops forever (as it should). On 2.6.23-mm1, it exits after 10 seconds.

I bet something like this

	void *threda(void *arg)
	{
		for (;;)
			pause();
		return NULL;
	}

	int main(void)
	{
		pthread_t tid;

		pthread_create(&tid, NULL, thread, NULL);
		pthread_join(tid, NULL);

		return 0;
	}

won't work as well.

> > Any idea on what may cause this problem ?

Because do_fork() doesn't use parent_tidptr. At all! So it is very clear
why 2.6.23-mm1 is broken.

> Bisection shows that this problem is caused by these two patches:
>
> pid-namespaces-allow-cloning-of-new-namespace.patch

This? http://marc.info/?l=linux-mm-commits&m=118712242002039

Pavel, this patch has a subtle difference compared to what we discussed on
containers list. It moves put_user(parent_tidptr) from copy_process() to
do_fork(), so we don't report child's pid if copy_process() failed. I do
not think this is bad, but Eric seems to disagree with such a change.

But I can't understand why Andrew sees the same problem _after_ this patch!

And which patch removed the "put_user(nr, parent_tidptr)" chunk?

Andrew, could I get the kernel source after bisection somehow? (I am not
familiar with guilt, will try to study it later)

Mathieu, could you try the patch below?

Oleg.

--- kernel/fork.c~	2007-10-13 15:41:35.000000000 +0400
+++ kernel/fork.c	2007-10-13 15:41:41.000000000 +0400
@@ -1443,6 +1443,9 @@ long do_fork(unsigned long clone_flags,
 			task_pid_nr_ns(p, current->nsproxy->pid_ns) :
 				task_pid_vnr(p);
 
+		if (clone_flags & CLONE_PARENT_SETTID)
+			put_user(nr, parent_tidptr);
+
 		if (clone_flags & CLONE_VFORK) {
 			p->vfork_done = &vfork;
 			init_completion(&vfork);


  reply	other threads:[~2007-10-13 13:04 UTC|newest]

Thread overview: 163+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-12  4:31 2.6.23-mm1 Andrew Morton
2007-10-12  5:03 ` 2.6.23-mm1 KAMEZAWA Hiroyuki
2007-10-12  6:42   ` 2.6.23-mm1 Andrew Morton
2007-10-12  6:46     ` 2.6.23-mm1 Al Viro
2007-10-12  7:13       ` 2.6.23-mm1 Andrew Morton
2007-10-12 18:06         ` [PATCH net-2.6] uml: hard_header fix Stephen Hemminger
2007-10-12 19:04         ` 2.6.23-mm1 Al Viro
2007-10-12 19:47         ` 2.6.23-mm1 thread exit_group issue Mathieu Desnoyers
2007-10-12 20:01           ` Andrew Morton
2007-10-13  1:03           ` Andrew Morton
2007-10-13 11:48             ` Oleg Nesterov [this message]
2007-10-13 12:02               ` Oleg Nesterov
2007-10-13 17:49                 ` Andrew Morton
2007-10-14  4:04               ` Mathieu Desnoyers
2007-10-12  7:25     ` 2.6.23-mm1 KAMEZAWA Hiroyuki
2007-10-12  8:36       ` 2.6.23-mm1 Sam Ravnborg
2007-10-12  8:31     ` 2.6.23-mm1 Torsten Kaiser
2007-10-12  8:37       ` 2.6.23-mm1 Andrew Morton
2007-10-12 12:46         ` 2.6.23-mm1 Torsten Kaiser
2007-10-13  8:01         ` 2.6.23-mm1 Torsten Kaiser
2007-10-13 10:55           ` 2.6.23-mm1 Jeff Garzik
2007-10-13 12:03             ` 2.6.23-mm1 Torsten Kaiser
2007-10-13 12:19               ` 2.6.23-mm1 Jeff Garzik
2007-10-13 14:32                 ` 2.6.23-mm1 Torsten Kaiser
2007-10-13 14:40                   ` 2.6.23-mm1 Torsten Kaiser
2007-10-13 15:13                     ` 2.6.23-mm1 Torsten Kaiser
2007-10-13 17:48                       ` 2.6.23-mm1 Jeff Garzik
2007-10-13 18:05                         ` 2.6.23-mm1 Torsten Kaiser
2007-10-13 18:18                           ` 2.6.23-mm1 Andrew Morton
2007-10-13 18:35                             ` 2.6.23-mm1 Torsten Kaiser
2007-10-14 11:54                             ` 2.6.23-mm1 Torsten Kaiser
2007-10-14 18:39                               ` 2.6.23-mm1 Andrew Morton
2007-10-14 19:12                                 ` 2.6.23-mm1 Torsten Kaiser
2007-10-14 19:26                                   ` 2.6.23-mm1 Andrew Morton
2007-10-14 19:26                                     ` 2.6.23-mm1 Andrew Morton
2007-10-14 19:40                                     ` 2.6.23-mm1 Torsten Kaiser
2007-10-14 22:03                                     ` 2.6.23-mm1 Milan Broz
2007-10-14 22:03                                       ` 2.6.23-mm1 Milan Broz
2007-10-15  6:50                                       ` 2.6.23-mm1 Jens Axboe
2007-10-15  6:50                                         ` 2.6.23-mm1 Jens Axboe
2007-10-15  7:31                                         ` 2.6.23-mm1 Neil Brown
2007-10-15  7:31                                           ` 2.6.23-mm1 Neil Brown
2007-10-15  7:45                                           ` 2.6.23-mm1 Jens Axboe
2007-10-15  7:45                                             ` 2.6.23-mm1 Jens Axboe
2007-10-13 18:41                           ` 2.6.23-mm1 Jeff Garzik
2007-10-12  6:48   ` 2.6.23-mm1 Cedric Le Goater
2007-10-12  6:51 ` [PATCH] add missing parenthesis in cfe_writeblk() macro Mariusz Kozlowski
2007-10-12  7:44 ` 2.6.23-mm1 - build failure on axonram Kamalesh Babulal
2007-10-12  9:42 ` Build Failure (Was Re: 2.6.23-mm1) Dhaval Giani
2007-10-12  9:42   ` Dhaval Giani
2007-10-12 20:38 ` 2.6.23-mm1 Laurent Riffard
2007-10-12 21:00   ` 2.6.23-mm1 Andrew Morton
2007-10-13  9:29     ` [PATCH] Reiser4: Drop 'size' argument from bio_endio and bi_end_io Laurent Riffard
2007-10-13 10:10       ` Jens Axboe
2007-10-14 13:09       ` Edward Shishkin
2007-10-15 16:13     ` 2.6.23-mm1 Zan Lynx
2007-10-12 21:32 ` 2.6.23-mm1 Rafael J. Wysocki
2007-10-15 16:09   ` 2.6.23-mm1 Mark Gross
2007-10-15 20:40     ` 2.6.23-mm1 Rafael J. Wysocki
2007-10-16 19:58       ` 2.6.23-mm1 Mark Gross
2007-10-16 20:28         ` 2.6.23-mm1 Rafael J. Wysocki
2007-10-16 23:31           ` 2.6.23-mm1 Mark Gross
2007-10-17 21:15           ` [PATCH] static initialization with blocking notifiers. was :wqRe: 2.6.23-mm1 Mark Gross
2007-10-17 17:21   ` [PATCH] static initialization and blocking notification for pm_qos... was 2.6.23-mm1 Mark Gross
2007-10-13  4:35 ` 2.6.23-mm1 - Build failure on rgmii Kamalesh Babulal
2007-10-13  4:44 ` 2.6.23-mm1 - build failure with advansys Kamalesh Babulal
2007-10-13  6:52   ` Andrew Morton
2007-10-13  6:52     ` Andrew Morton
2007-10-18  0:07     ` Paul Mackerras
2007-10-18  0:07       ` Paul Mackerras
2007-10-18  1:48       ` Matthew Wilcox
2007-10-18  1:48         ` Matthew Wilcox
2007-10-13 15:50 ` 2.6.23-mm1 pm_prepare() and _finish() w/ args vs. without Joseph Fannin
2007-10-13 17:22   ` Rafael J. Wysocki
2007-10-13 18:40     ` Joseph Fannin
2007-10-13 19:13       ` Rafael J. Wysocki
2007-10-14 19:47         ` Joseph Fannin
2007-10-14 20:20           ` Rafael J. Wysocki
2007-10-15 20:55             ` Rafael J. Wysocki
2007-10-16 17:29               ` Joseph Fannin
2007-10-13 17:12 ` 2.6.23-mm1 Gabriel C
2007-10-13 18:01   ` 2.6.23-mm1 Andrew Morton
2007-10-13 18:08     ` 2.6.23-mm1 Gabriel C
2007-10-15 16:28     ` 2.6.23-mm1 Dave Hansen
2007-10-13 17:58 ` Suspend Broken (Re: 2.6.23-mm1) Dhaval Giani
2007-10-13 18:33   ` Rafael J. Wysocki
2007-10-14  4:26     ` Dhaval Giani
2007-10-14 14:19       ` Rafael J. Wysocki
2007-10-13 22:11 ` [2.6.23-mm1] CONFIG_LOCALVERSION handling broken Tilman Schmidt
2007-10-17 20:27   ` Sam Ravnborg
2007-10-17 23:06   ` Tilman Schmidt
2007-10-27 15:19     ` Tilman Schmidt
2007-10-27 15:28       ` Sam Ravnborg
2007-10-14 22:34 ` 2.6.23-mm1: BUG in reiserfs_delete_xattrs Laurent Riffard
2007-10-14 22:34   ` Laurent Riffard
2007-10-15  8:40   ` Christoph Hellwig
2007-10-15 18:31     ` Jeff Mahoney
2007-10-15 20:06       ` Laurent Riffard
2007-10-15 20:06         ` Laurent Riffard
2007-10-15 20:23         ` Jeff Mahoney
2007-10-15 20:23           ` Jeff Mahoney
2007-10-17  8:59         ` Christoph Hellwig
2007-10-17  8:58       ` Christoph Hellwig
2007-10-17 14:55         ` Jeff Mahoney
2007-10-17 14:55         ` Jeff Mahoney
2007-10-17 14:55           ` Jeff Mahoney
2007-10-15 18:31     ` Jeff Mahoney
2007-10-15 18:31     ` Jeff Mahoney
2007-10-15 19:51     ` Laurent Riffard
2007-10-15 19:51     ` Laurent Riffard
2007-10-15 19:51     ` Laurent Riffard
2007-10-15  6:18 ` [PATCH] Add irq protection in the percpu-counters cpu-hotplug-callback path Gautham R Shenoy
2007-10-15 12:28 ` nfs mmap adventure (was: 2.6.23-mm1) Peter Zijlstra
2007-10-15 14:06   ` David Howells
2007-10-15 15:51     ` Trond Myklebust
2007-10-15 16:38       ` Peter Zijlstra
2007-10-16  1:46     ` Nick Piggin
2007-10-15 23:27       ` David Howells
2007-10-15 15:43   ` Trond Myklebust
2007-10-16  7:18 ` 2.6.23-mm1 - regression- PowerPC link failure at arch/powerpc/kernel/head_64.o Kamalesh Babulal
2007-10-16  7:28   ` Andrew Morton
2007-10-16  7:44     ` Kamalesh Babulal
2007-10-21  6:42       ` Kamalesh Babulal
2007-10-27  5:05         ` Stephen Rothwell
2007-10-17  7:01 ` 2.6.23-mm1 KAMEZAWA Hiroyuki
2007-10-17  9:02   ` 2.6.23-mm1 Andrew Morton
2007-10-17  9:10   ` 2.6.23-mm1 Jiri Kosina
2007-10-17  9:36     ` 2.6.23-mm1 KAMEZAWA Hiroyuki
2007-10-17 11:42       ` 2.6.23-mm1 Jiri Kosina
2007-10-17 12:33         ` 2.6.23-mm1 KAMEZAWA Hiroyuki
2007-10-19  9:07           ` PIE randomization (was Re: 2.6.23-mm1) Jiri Kosina
2007-10-19 21:54       ` 2.6.23-mm1 Jiri Kosina
2007-10-17 15:54 ` 2.6.23-mm1 - list_add corruption in cgroup Cedric Le Goater
2007-10-18 15:56   ` Paul Menage
2007-10-19 22:11   ` Paul Menage
2007-10-18 12:06 ` 2.6.23-mm1 - powerpc - Build fails at arch/powerpc/boot/inflate.o Kamalesh Babulal
2007-10-18 12:06   ` Kamalesh Babulal
2007-10-18 12:23   ` Paul Mackerras
2007-10-18 12:23     ` Paul Mackerras
2007-10-18 13:20     ` Kamalesh Babulal
2007-10-18 13:20       ` Kamalesh Babulal
2007-10-20  4:57 ` oops in lbmIODone, fails to boot [Re: 2.6.23-mm1] Mattia Dongili
2007-10-20  5:34   ` Andrew Morton
2007-10-20 12:18     ` Dave Kleikamp
2007-10-21  5:44       ` Mattia Dongili
2007-10-20  5:13 ` 2.6.23-mm1 - autofs broken Rik van Riel
2007-10-20  5:39   ` Andrew Morton
2007-10-20  5:54     ` Rik van Riel
2007-10-20  5:54       ` Rik van Riel
2007-10-20 14:56         ` Rik van Riel
2007-10-22 22:03           ` Dave Hansen
2007-10-22  3:45   ` Ian Kent
2007-10-22 16:46     ` Rik van Riel
2007-10-21  5:58 ` mysqld prevents s2ram [Re: 2.6.23-mm1] Mattia Dongili
2007-10-21  6:28   ` Mattia Dongili
2007-10-21  9:58   ` Pavel Machek
2007-10-21 11:53     ` Rafael J. Wysocki
2007-10-22 18:40 ` kernel panic when running tcpdump Mariusz Kozlowski
2007-10-22 18:40   ` Mariusz Kozlowski
2007-10-22 19:03   ` Andrew Morton
2007-10-22 19:03     ` Andrew Morton
2007-10-22 21:16     ` Mariusz Kozlowski
2007-10-22 21:16       ` Mariusz Kozlowski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20071013114820.GA121@tv-sign.ru \
    --to=oleg@tv-sign.ru \
    --cc=akpm@linux-foundation.org \
    --cc=ebiederm@xmission.com \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mathieu.desnoyers@polymtl.ca \
    --cc=menage@google.com \
    --cc=netdev@vger.kernel.org \
    --cc=sam@ravnborg.org \
    --cc=sukadev@us.ibm.com \
    --cc=viro@ftp.linux.org.uk \
    --cc=xemul@openvz.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.