[lkml]   [2013]   [Dec]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: process 'stuck' at exit.
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


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.


 \ /
  Last update: 2013-12-11 01:41    [W:0.491 / U:0.384 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site