Date: Mon, 12 May 2003 14:54:33 -0700 (PDT) From: Don Lewis <truckman@FreeBSD.org> To: rwatson@FreeBSD.org Cc: current@FreeBSD.org Subject: Re: rpc.lockd spinning; much breakage Message-ID: <200305122154.h4CLsXM7048693@gw.catspoiler.org> In-Reply-To: <Pine.NEB.3.96L.1030512165906.76804Q-100000@fledge.watson.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 12 May, Robert Watson wrote: >> Why not attach the process in gdb and step through the code to find the >> loop? > > Well, I guess the problem is I'm not familiar with the NFS lock manager > protocol, and what I'm looking for more is debugging advice: is the best > approach to attach to the client or server rpc.lockd? I had a lot of > trouble getting ethereal to work well for debugging NLM stuff as it tended > to crash. :-) Things are somewhat complicated by the fact that once you > lose the rpc.lockd on a client, lots of programs begin to hang and stack > up... Since the server spins in the absence of traffic, I'd look there first. It should reject any corrupt requests, and if it loops forever when it gets a request, whether corrupt or legal, it must have a bug (think DoS). If it loops on a legal request, then the clients will all get hosed, whether or not they are working correctly. If it's an illegal request that is causing the server to loop, you may be able to gather some more information about what's wrong with the request.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200305122154.h4CLsXM7048693>