Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Jul 2006 07:20:10 +0300
From:      Kostik Belousov <kostikbel@gmail.com>
To:        Francisco Reyes <lists@stringsutils.com>
Cc:        freebsd-stable@freebsd.org, Michel Talon <talon@lpthe.jussieu.fr>, User Freebsd <freebsd@hub.org>
Subject:   Re: NFS Locking Issue
Message-ID:  <20060703042010.GG37822@deviant.kiev.zoral.com.ua>
In-Reply-To: <cone.1151876984.69254.64011.1000@zoraida.natserv.net>
References:  <20060629230309.GA12773@lpthe.jussieu.fr> <20060630041733.GA4941@zibbi.meraka.csir.co.za> <cone.1151802806.162227.42680.1000@zoraida.natserv.net> <20060702162942.D1103@ganymede.hub.org> <cone.1151876984.69254.64011.1000@zoraida.natserv.net>

next in thread | previous in thread | raw e-mail | index | archive | help

--vKFfOv5t3oGVpiF+
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Sun, Jul 02, 2006 at 05:49:44PM -0400, Francisco Reyes wrote:
> User Freebsd writes:
>=20
> >Since there are several of us experiencing what looks to be the same sor=
t=20
> >of deadlock issue, I beseech you not to give up
>=20
> I will try to setup the environment, but to be honest no more 6.X for us=
=20
> until 6.2 or 6.3.. We have lost clients already.
I think that then 6.2 and 6.3 is not for you either. Problems
cannot be fixed until enough information is given. Since nobody
except you experience that problems (at least, only you notified
about the problem existence), no bug reports with sufficient
information is given.
>=20
> >Is this a problem that you can easily recreate
>=20
> There is one thing I can easily recreate that would very helpfull to solv=
e.
> The 6.X NFS clients freeze if the NFS server goes away.
>=20
> I have been able to reproduce that every single time.. both in test and=
=20
> production.
Is this for intr mounts ? I posted some time ago the patches that
improved handling of signals in nfs client. If you could test it, that
would be useful.


? sys/nfsclient/.arch-ids
Index: sys/nfsclient/nfs_socket.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /usr/local/arch/ncvs/src/sys/nfsclient/nfs_socket.c,v
retrieving revision 1.141
diff -u -r1.141 nfs_socket.c
--- sys/nfsclient/nfs_socket.c	23 May 2006 18:33:58 -0000	1.141
+++ sys/nfsclient/nfs_socket.c	3 Jul 2006 04:19:23 -0000
@@ -1701,11 +1701,13 @@
 	p =3D td->td_proc;
 	PROC_LOCK(p);
 	tmpset =3D p->p_siglist;
+	SIGSETOR(tmpset, td->td_siglist);
 	SIGSETNAND(tmpset, td->td_sigmask);
 	mtx_lock(&p->p_sigacts->ps_mtx);
 	SIGSETNAND(tmpset, p->p_sigacts->ps_sigignore);
 	mtx_unlock(&p->p_sigacts->ps_mtx);
-	if (SIGNOTEMPTY(p->p_siglist) && nfs_sig_pending(tmpset)) {
+	if ((SIGNOTEMPTY(p->p_siglist) || SIGNOTEMPTY(td->td_siglist))
+	    && nfs_sig_pending(tmpset)) {
 		PROC_UNLOCK(p);
 		return (EINTR);
 	}
Index: sys/nfsclient/nfs_vnops.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /usr/local/arch/ncvs/src/sys/nfsclient/nfs_vnops.c,v
retrieving revision 1.266
diff -u -r1.266 nfs_vnops.c
--- sys/nfsclient/nfs_vnops.c	19 May 2006 00:04:24 -0000	1.266
+++ sys/nfsclient/nfs_vnops.c	3 Jul 2006 04:19:24 -0000
@@ -2716,7 +2716,7 @@
 	 * otherwise just do it ourselves.
 	 */
 	if ((bp->b_flags & B_ASYNC) =3D=3D 0 ||
-	    nfs_asyncio(VFSTONFS(ap->a_vp->v_mount), bp, NOCRED, td))
+	    nfs_asyncio(VFSTONFS(ap->a_vp->v_mount), bp, NOCRED, curthread))
 		(void)nfs_doio(ap->a_vp, bp, cr, td);
 	return (0);
 }

--vKFfOv5t3oGVpiF+
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.4 (FreeBSD)

iD8DBQFEqJr6C3+MBN1Mb4gRAs0QAJ9PPTCtdFjWFJC3osU7OsoneGqNWwCfcOqF
mC49Qg5T6AICokwWe863s5E=
=0oBr
-----END PGP SIGNATURE-----

--vKFfOv5t3oGVpiF+--



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