Date: Wed, 5 Jul 2006 14:38:22 +0300 From: Kostik Belousov <kostikbel@gmail.com> To: Robert Watson <rwatson@freebsd.org> Cc: freebsd-stable@freebsd.org, Michel Talon <talon@lpthe.jussieu.fr> Subject: Re: NFS Locking Issue Message-ID: <20060705113822.GM37822@deviant.kiev.zoral.com.ua> In-Reply-To: <20060705100403.Y80381@fledge.watson.org> References: <E1FxzUU-000MMw-5m@cs1.cs.huji.ac.il> <20060705100403.Y80381@fledge.watson.org>
next in thread | previous in thread | raw e-mail | index | archive | help
--yaPAUYI/0vT2YKpA Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Wed, Jul 05, 2006 at 10:09:24AM +0100, Robert Watson wrote: > The most significant problem working with rpc.lockd is creating easy to= =20 > reproduce test cases. Not least because they can potentially involve=20 > multiple clients. If you can help to produce simple test cases to=20 > reproduce the bugs you're seeing, that would be invaluable. >=20 =2E....... >=20 > Reducing complex failure modes to easily reproduced test cases is tricky= =20 > also, though. It requires careful analysis, often with ktrace and=20 > tcpdump/ethereal to work out what's going on, and not a little luck to=20 > perform the reduction of a large trace down to a simple test scenario. T= he=20 > first step is to try and figure out what, if any, specific workload resul= ts=20 > in a problem. For example, can you trigger it using work on just one=20 > client against a server, without client<->client interactions? This make= s=20 > tracking and reproduction a lot easier, as multi-client test cases are=20 > really tricky! Once you've established whether it can be reproduced with= a=20 > single client, you have to track down the behavior that triggers it --=20 > normally, this is done by attempting to narrow down the specific program = or=20 > sequence of events that causes the bug to trigger, removing things one at= a=20 > time to see what causes the problem to disappear. This is made more=20 > difficult as lock managers are sensitive to timing, so removing a high lo= ad=20 > item from the list, even if it isn't the source of the problem, might cau= se=20 > it to trigger less frequently. I made the patch for rpc.lockd that could somewhat ease obtaining debug information. Patch is available at http://people.freebsd.org/~kib/rpc.lockd-debug.patch No functional changes. Patch only adds dumping of currently held locks (as perceived by lockd) on receiving of SIGUSR1. You need to specify debug level 2 or 3 to obtain the dump. Also, the both lockd processes now put identification information in the proctitle (srv and kern). SIGUSR1 shall be sent to srv process. --yaPAUYI/0vT2YKpA Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.4 (FreeBSD) iD8DBQFEq6SuC3+MBN1Mb4gRApCoAKCtMr8xxjm6SRZo/v19JLCc6AYa/ACffhrk DwT7qAM1B0b73pWvr4m7GxU= =4Dzc -----END PGP SIGNATURE----- --yaPAUYI/0vT2YKpA--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060705113822.GM37822>