Skip site navigation (1)Skip section navigation (2)
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>