Messages in this thread | | | Date | Tue, 10 Dec 2013 19:23:30 -0500 | From | Dave Jones <> | Subject | Re: 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
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
| |