panic: Bad link elm, nfsd related?

Jaakko Heinonen jh at saunalahti.fi
Tue Mar 24 11:15:08 PDT 2009


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)
@@ -296,8 +296,10 @@ 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.

-- 
Jaakko


More information about the freebsd-current mailing list