On Tue, Mar 24, 2009 at 08:04:38PM +0200, Jaakko Heinonen wrote: > On 2009-03-23, Matthew West wrote: > > After 1-2 weeks, the system will panic with the following: > > > > ---------- > > panic: Bad link elm 0xffffff0011febc00 next->prev != elm > > It looks like an attempt to remove xprt twice from tail queue due to > race. Does this patch make any difference? > > %%% > Index: sys/rpc/svc.c > =================================================================== > --- sys/rpc/svc.c (revision 189918) > +++ sys/rpc/svc.c (working copy) > _at__at_ -296,8 +296,10 _at__at_ xprt_unregister_locked(SVCXPRT *xprt) > TAILQ_REMOVE(&pool->sp_active, xprt, xp_alink); > xprt->xp_active = FALSE; > } > - TAILQ_REMOVE(&pool->sp_xlist, xprt, xp_link); > - xprt->xp_registered = FALSE; > + if (xprt->xp_registered) { > + TAILQ_REMOVE(&pool->sp_xlist, xprt, xp_link); > + xprt->xp_registered = FALSE; > + } > } > > void > %%% > > This was also reported by Edward Fisk (Cc'd) in PR 132068. Yes, I did it, and discussed exactly the same change with dfr_at_. The patch only fixes symptom, the real problem is double unreg.
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:44 UTC