tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: How to prevent a mutex being _enter()ed from being _destroy()ed?



> Date: Sun, 12 Aug 2018 20:59:07 +0200
> From: Edgar Fuß <ef%math.uni-bonn.de@localhost>
> 
> OK, I hit my new panic in soput(). The call chain is
> breakpoint<-vpanic<-printf_nolog<-soqinsque<-soclose<-soo_close<-closef<-fd_close<-syscall.

That's weird.  soclose doesn't call soqinsque.

I don't have a hypothesis for how the rest of this could happen but
I'm travelling right now with limited time to think.

> Strangely, my new unp_gc_current_socket variable is NULL.
> Is it possible that the gc thread continued to run on another CPU after 
> the CPU trying to soput() the socket paniced?

Quite likely.  You're diagnosing a race between writes on different
CPUs here, so don't expect the view from ddb after everything has
settled to be exactly the same as the view from any CPU at the time of
the race.


Home | Main Index | Thread Index | Old Index