Bug 149523

Summary: Problem getting a lock in NFS home directory (linux client/solaris server)
Product: Red Hat Enterprise Linux 4 Reporter: Need Real Name <rnclear>
Component: nfs-utilsAssignee: Steve Dickson <steved>
Status: CLOSED CURRENTRELEASE QA Contact: Ben Levenson <benl>
Severity: medium Docs Contact:
Priority: medium    
Version: 4.0CC: kanderso, k.georgiou
Target Milestone: ---Keywords: Regression
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2005-06-21 16:53:26 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On:    
Bug Blocks: 154907    
Attachments:
Description Flags
snoop data on solaris server of Linux client none

Description Need Real Name 2005-02-23 19:39:57 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.5)
Gecko/20041107 Firefox/1.0

Description of problem:
We recently upgraded our Linux workstations from RHEL 3 to RHEL 4 and
we began noticing NFS locking problems. Users are unable to get locks
on files from their NFS mounted home directories being served from a
SUN Solaris server. 

When the machine was rolled back to RHEL 3U4 the problem goes away.
Nothing has changed on the server side, the same NFS home directory is
being mounted.

Version-Release number of selected component (if applicable):


How reproducible:
Always

Steps to Reproduce:
1. export KRB5CCNAME=/<nfs mounted home>/krb-ticket.cache
2. /usr/kerberos/bin/kinit

At this point the kinit freezes and the following in noticed in an
xterminal window running top:

top - 12:16:36 up  1:39,  5 users,  load average: 0.30, 0.14, 0.10
Tasks: 109 total,   2 running, 106 sleeping,   0 stopped,   1 zombie
Cpu(s):  4.8% us,  4.5% sy,  0.0% ni, 88.4% id,  0.0% wa,  0.0% hi, 
2.3% si
Mem:   1034156k total,   354408k used,   679748k free,     7372k buffers
Swap:  2097136k total,   165728k used,  1931408k free,   181128k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 2228 rpc       15   0  2560  412  336 S 10.6  0.0   0:04.83 portmap
 5002 joeuser   15   0 58116  18m 8844 S  4.3  1.8   0:10.74
gnome-terminal
 3310 root      16   0  207m  36m 5052 S  2.7  3.6   1:51.17 X
 2308 root      15   0     0    0    0 S  1.7  0.0   0:00.87 lockd
 3755 joeuser   16   0 19808 1744 1556 S  0.3  0.2   0:00.47
gnome-settings-

Notice that portmap and lockd are running and continue to run until
the kinit is killed/terminated.

The following is output from an strace of the portmap command:

munmap(0xb7fff000, 4096)                = 0
open("/etc/hosts.deny", O_RDONLY)       = 6
fstat64(6, {st_mode=S_IFREG|0644, st_size=347, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0xb7fff000
read(6, "#\n# hosts.deny\tThis file describ"..., 4096) = 347
read(6, "", 4096)                       = 0
close(6)                                = 0
munmap(0xb7fff000, 4096)                = 0
write(5, "\200\0\0\34GG\261\335\0\0\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0"...,
32) = 32
poll([{fd=3, events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=4,
events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND}, {fd=5,
events=POLLIN|POLLPRI|POLLRDNORM|POLLRDBAND,
revents=POLLIN|POLLRDNORM}], 3, -1) = 1
poll([{fd=5, events=POLLIN, revents=POLLIN}], 1, 35000) = 1
read(5, "\200\0\0TGG\261\337\0\0\0\0\0\0\0\2\0\1\206\240\0\0\0\2"...,
400) = 88
open("/etc/hosts.allow", O_RDONLY)      = 6
fstat64(6, {st_mode=S_IFREG|0644, st_size=161, ...}) = 0
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1,
0) = 0xb7fff000
read(6, "#\n# hosts.allow\tThis file descri"..., 4096) = 161
read(6, "", 4096)                       = 0
close(6)                                = 0
munmap(0xb7fff000, 4096) 

3. export KRB5CCNAME= or export KRB5CCNAME=/<local file system>

Unexport the KRB5CCNAME variable, it will normally default to /tmp
which is a local file system.

4)joeuser: /usr/kerberos/bin/kinit
  Password for joeuser@domain.com:
  joeuser:

I am also able to reproduce this problem with evolution. Apparently
evolution is trying to get locks and it exhibits the same behavior.

Additional info:

Comment 1 Need Real Name 2005-03-01 20:01:55 UTC
Created attachment 111548 [details]
snoop data on solaris server of Linux client

The attached tar file contains network snoops of three different machines. In
our environment our home directories are nfs mounted, I logged into three
different machines RH9/RHEL3/RHEL4 and did the same export/kinit command. On
the RH9 and RHEL3 machine I was successful but on the RHEL4 machine the command
failed.

Comment 3 Steve Dickson 2005-04-16 17:28:54 UTC
Please updated to RHEL4 U1. The fix for this problem is in that 
release

Comment 5 Steve Dickson 2005-06-21 09:35:39 UTC
Has U1 fixed this issue?  If not what version of Solairs was were
you using and what was the mount command that was being used.

Comment 6 Need Real Name 2005-06-21 12:56:58 UTC
Yes U1 has appeared to fix the NFS locking problem that we were noticing. Thanks
for you help in resolving this critical issue.

Comment 7 Jay Turner 2005-06-21 16:53:26 UTC
Closing this bug out based on comment 6.