Re: process 'stuck' at exit.

From: Dave Jones
Date: Tue Dec 10 2013 - 19:25:45 EST


On Tue, Dec 10, 2013 at 07:05:04PM -0500, Steven Rostedt wrote:
> On Tue, Dec 10, 2013 at 06:00:09PM -0500, Dave Jones wrote:
> >
> > The only thing I'm still unclear on, is how that pid allegedly wasn't doing
> > a futex call as part of its run. The only thing I can think of is that
> > the other pid that _did_ do a futex call did it on a page that was MAP_SHARED
> > between all the other children, and this 'spin forever' thing only
> > happens when the last process with a reference on that page exits ?
>
> Which thread did not do the futex call? The one that was spinning? No, that one
> most definitely was, at least according to the stack trace trace you posted:
>
> trinity-child27-10818 [001] 89790.703547: kernel_stack: <stack trace>
> => futex_requeue (ffffffff810df18a)
> => do_futex (ffffffff810e019e)
> => SyS_futex (ffffffff810e0de1)
> => tracesys (ffffffff81760be4)
>
> It did a futex() system call.
>
> Or are you talking about another thread?

It's the same thread. but here's what it says the last thing it did was..

(gdb) print shm->previous_syscallno[27]
$1 = 288

accept4.

Just to verify I'm looking at the right array member..

(gdb) print shm->pids[27]
$2 = 10818

Oh, hmm. Wait, I'm an idiot.
I only update ->previous when we come back from the syscall.
It's _still_ doing this syscall.

(gdb) print shm->syscallno[27]
$4 = 202

I was distracted by seeing all the other threads exiting, so I was only looking at
what this one had already done.

ok, mystery solved. derp.

Dave

--
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/