Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 17 Mar 2006 11:41:03 +0200
From:      Kostik Belousov <kostikbel@gmail.com>
To:        Mikhail Teterin <mi+mx@aldan.algebra.com>
Cc:        current@freebsd.org
Subject:   Re: unkillable process stuck in "nfsaio"
Message-ID:  <20060317094103.GD1203@deviant.kiev.zoral.com.ua>
In-Reply-To: <200603161516.27081.mi%2Bmx@aldan.algebra.com>
References:  <200603161516.27081.mi%2Bmx@aldan.algebra.com>

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

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

On Thu, Mar 16, 2006 at 03:16:26PM -0500, Mikhail Teterin wrote:
> I was creating a big .iso image using mkisofs. The file was written over =
NFS=20
> to a remote share.
>=20
> When I decided to stop it and pressed Ctrl-C, the process hung and remain=
s=20
> unkillable (even with -9).
>=20
> Pressing Ctrl-T prints the following:
>=20
> load: 0.04  cmd: mkisofs 48414 [nfsaio] 0.70u 5.89s 0% 8784k
>=20
> The share is mounted as:
>=20
> 	pandora:/backup on /tmp/.a/pandora/backup (nfs, nosuid)
>=20
> The client is FreeBSD 6.1-PRERELEASE #0: Mon Mar 13 ... i386.
>=20
> The server information is deliberately witheld, because it should be poss=
ible=20
> to abort and kill the client-side writer regardless of the server version=
 :-)
>=20
> Thanks in advance for fixing this bug. Yours,
>=20
> 	-mi

Just out of curiosity:

could you, please, test this little patch:

Index: sys/nfsclient/nfs_bio.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_bio.c,v
retrieving revision 1.154
diff -u -r1.154 nfs_bio.c
--- sys/nfsclient/nfs_bio.c	21 Nov 2005 19:23:46 -0000	1.154
+++ sys/nfsclient/nfs_bio.c	17 Mar 2006 09:38:40 -0000
@@ -1355,7 +1355,6 @@
 				if (error2)
 					return (error2);
 				if (slpflag =3D=3D PCATCH) {
-					slpflag =3D 0;
 					slptimeo =3D 2 * hz;
 				}
 			}

It seems from the code that the condition should be easily
triggered.

Thanks.

--HWvPVVuAAfuRc6SZ
Content-Type: application/pgp-signature
Content-Disposition: inline

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

iD8DBQFEGoQuC3+MBN1Mb4gRAtlcAKDXQ5VatLcT1VYRkpPilOaBjc+uzACg835F
iHNqt+wqAden/05N6dJ1W3w=
=UBjS
-----END PGP SIGNATURE-----

--HWvPVVuAAfuRc6SZ--



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