Date: Sat, 15 Mar 2003 01:33:11 -0600 From: Dan Nelson <dnelson@allantgroup.com> To: Steve Sizemore <steve@ls.berkeley.edu> Cc: "Andrew P. Lentvorski, Jr." <bsder@allcaps.org>, current@FreeBSD.ORG Subject: Re: NFS file unlocking problem Message-ID: <20030315073311.GI83765@dan.emsphone.com> In-Reply-To: <20030315052315.GA39471@math.berkeley.edu> References: <20030314062537.GB37608@math.berkeley.edu> <Pine.LNX.4.44.0303141756100.28739-100000@mail.allcaps.org> <20030314062537.GB37608@math.berkeley.edu> <20030314155856.GD97044@dan.emsphone.com> <20030314213321.GF38664@math.berkeley.edu> <20030314224711.GG83765@dan.emsphone.com> <20030315052315.GA39471@math.berkeley.edu>
next in thread | previous in thread | raw e-mail | index | archive | help
In the last episode (Mar 14), Steve Sizemore said: > > That's ... odd. However, the Solaris rpc.lockd does some strange caching > > that can lead to asymmetric behavior. > > > > In addition, you are running Solaris 2.5 which qualifies as practically > > prehistoric in computer time. That's going to activate some old > > mechanisms which FreeBSD may or may not support. > > OK, that was a typo - it's really 2.6. Not quite so ancient. However, > I also have a Solaris 8 machine that has the same behavior, so I've > used it to generate the requested output. Oops. You appended a decoded dump again. I should have told you how to generate a raw tcpdump log. Add "-s 1500 -w file.pcap" to the tcpdump commandline. You won't get any output to the screen, but the raw packet contents will get written to the file. You can replay it with tcpdump -r, or load it into ethereal and view the packets in the GUI. > > Several areas are suspect: > > > > 1) RPC can't agree on a protocol version with Solaris 2.5 > > 2) NFS can't agree on a protocol version with Solaris 2.5 > > 3) The lock attempt itself is broken Judging by the truss, I'd say #3 > Note that the program now has been simplified to do only the lock, > since it's no longer necessary to unlock the file to get it to hang. > Here's the demo program - Runs fine on my Solaris 2.6 and 2.7 machines, so it's not a Solaris->FreeBSD specific problem. > open("/home/cosmology/steve/lock_file", O_RDWR) = 3 > fstat(3, 0x000C0A2C) = 0 > fcntl(3, F_SETFD, 0x00000001) = 0 > llseek(3, 0, SEEK_CUR) = 0 > Received signal #2, SIGINT, in fcntl() [default] > fcntl(3, F_SETLKW, 0xFFBEF790) Err#4 EINTR > *** process killed *** Ok, it definitely dies trying to lock the file. Check to make sure that rpc.lockd is still running on the FreeBSD server. I have seen it coredump on a couple of my 4.5 servers and the result was what you're seeing here (lock attempts hang). -- Dan Nelson dnelson@allantgroup.com To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030315073311.GI83765>