Current-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: Hang when starting sshd on MP machine
> On Sat, Mar 22, 2008 at 03:40:55PM -0400, Chris Ross wrote:
>
> >
> > On Mar 22, 2008, at 10:25, Andrew Doran wrote:
> > >It's a deadlock involving kernel_lock. Haven't figured out what the
> > >problem
> > >is yet, but I've put kernel_lock back around the kqueue stuff which
> > >should
> > >sort it for the time being.
> >
> > Putting kernel_lock back avoids the problem, helps figure out where
> > the problem is, or both?
>
> It avoids the problem.
>
> > If the former, then is there any help those of us only testing and not yet
> > needing any term of multiuser functionality could do to provide data to
> > help track it down?
>
> I think it's case of trying to understand where the dealock is coming from.
> It looks like a lock order reversal. I think what is happening is that one
> thread is acquiring:
>
> kernel_lock -> kq_lock
>
> .. and another is acquiring:
>
> kq_lock -> kernel_lock.
>
> They both deadlock waiting for each other's lock. Given a quick look I
> haven't been able to find that.
>
> Andrew
while kqueue_scan drops kq_lock to call f_event,
'kn' can be modified by eg. knote_activate.
it can cause the list corruption and make kqueue_scan loops
indefinitely with kq_lock held.
YAMAMOTO Takashi
Home |
Main Index |
Thread Index |
Old Index