Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 24 Mar 2009 20:04:38 +0200
From:      Jaakko Heinonen <jh@saunalahti.fi>
To:        Matthew West <mwest@l.zeeb.org>
Cc:        7ogcg7g02@sneakemail.com, freebsd-current@freebsd.org
Subject:   Re: panic: Bad link elm, nfsd related?
Message-ID:  <20090324180437.GA952@a91-153-125-115.elisa-laajakaista.fi>
In-Reply-To: <20090323140820.GA37093@zeeb.org>
References:  <20090323140820.GA37093@zeeb.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090324180437.GA952>