Re: 2.6.19-rc2-mm2: reproducible hang on shutdown on i386

From: Rafael J. Wysocki
Date: Mon Oct 23 2006 - 17:02:19 EST


On Monday, 23 October 2006 19:34, Andrew Morton wrote:
> > On Mon, 23 Oct 2006 16:43:31 +0200 "Rafael J. Wysocki" <rjw@xxxxxxx> wrote:
> > On Saturday, 21 October 2006 19:30, Rafael J. Wysocki wrote:
> > > On Friday, 20 October 2006 10:56, Andrew Morton wrote:
> > > >
> > > > ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.19-rc2/2.6.19-rc2-mm2/
> > > >
> > > > - Added the IOAT tree as git-ioat.patch (Chris Leech)
> > > >
> > > > - I worked out the git magic to make the wireless tree work
> > > > (git-wireless.patch). Hopefully it will be in -mm more often now.
> > >
> > > [Margin note: bcm43xx doesn't work on my test boxes although it used to on one
> > > of them, but I have to play with it a bit more.]
> > >
> > > It looks like i386 cannot shut down cleanly with this kernel. On my test
> > > boxes (2 of them) it hangs after killing all processes, 100% of the time.
> >
> > I've carried out a binary search which shows that
> >
> > add-process_session-helper-routine-deprecate-old-field-fix-warnings.patch
> >
> > causes this to happen.
>
> Thanks. That patch had one bug - this will hopefully fi things up:
>
> From: Jeff Dike <jdike@xxxxxxxxxxx>
>
> add-process_session-helper-routine-deprecate-old-field-fix-warnings.patch
> in -mm causes UML to hang at shutdown - init is sitting in a select on the
> initctl socket.
>
> This patch fixes it for me.
>
> Signed-off-by: Jeff Dike <jdike@xxxxxxxxxxx>
> Cc: Cedric Le Goater <clg@xxxxxxxxxx>
> Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
> ---
>
> fs/proc/array.c | 2 +-
> 1 files changed, 1 insertion(+), 1 deletion(-)
>
> diff -puN fs/proc/array.c~add-process_session-helper-routine-deprecate-old-field-fix-warnings-fix fs/proc/array.c
> --- a/fs/proc/array.c~add-process_session-helper-routine-deprecate-old-field-fix-warnings-fix
> +++ a/fs/proc/array.c
> @@ -388,7 +388,7 @@ static int do_task_stat(struct task_stru
> stime = cputime_add(stime, sig->stime);
> }
>
> - signal_session(sig);
> + sid = signal_session(sig);
> pgid = process_group(task);
> ppid = rcu_dereference(task->real_parent)->tgid;
>
> _
>

Yes, this fixes the issue. Thanks.


--
You never change things by fighting the existing reality.
R. Buckminster Fuller
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/