fcntl/F_RSETLK crashing 4.1 Sparcs ?? [lockd problem ??]

Eric Ho eric at picard.sbi.com
Thu Jan 24 01:47:58 AEST 1991


Have anyone out there seen fcntl() calls with F_RSETLK crashing 4.1
Sparc's ?  I've seen this under vanilla 4.1 as well as 4.1 with the lockd
patch [i.e.  patch id 100075 or something like that -- that patch replaces
ufs_lockf.o, klm_lockmgr.o and rpc.lockd].

Here are ~20 lines of code that can crash a 4.1 Sparc.

Note that the file, /holodeck/eric/yoyo is nfs-mounted from a fileserver.
I hand mounted it rw,soft,intr.  I tried the code on most 4.1 Sparcs that
has local disks -- don't know what happen for other archs or with diskless
clients though.  It crashes the system during the fcntl() call.

==========================================
#include <stdio.h>
#include <fcntl.h>

int lock_val;
#define READLOCK_FILE(fd1) \
	{					\
	  struct flock flock;			\
	  flock.l_type = F_RDLCK;		\
	  flock.l_whence = 0;			\
	  flock.l_start = flock.l_len = 0L;	\
	  lock_val = fcntl (fd1, F_RSETLK, &flock);	\
	}
main()
{
  int fd;
  /*  Make sure that /holodeck is nfs-mounted */
  fd = open("/holodeck/eric/yoyo",O_RDONLY,0000644);
  printf("fd = %d\n",fd);  fflush(stdout);
  READLOCK_FILE(fd);
  printf("lock_val = %d\n",lock_val);  fflush(stdout);
  close(fd);
}
==========================================

The strange thing is that if I use F_SETLK instead of F_RSETLK then
everything went ok.  So I pressume that there is still some kernel bugs
related to rpc.lockd.

Any pointers much appreciated.

+ Eric Ho                          Email: eric at sbi.com
+ Salomon Brothers, Inc.  [SISS]   Phone: (212) 855-3003



More information about the Comp.sys.sun mailing list