Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 9 Aug 1995 16:14:55 +0200 (MET DST)
From:      Thomas Graichen <graichen@sirius.physik.fu-berlin.de>
To:        hackers@freebsd.org
Cc:        ezk@cs.columbia.edu
Subject:   PLEASE help me to get broken FreeBSD automounter working PLEASE !!!
Message-ID:  <9508091414.AA24306@sirius.physik.fu-berlin.de>

next in thread | raw e-mail | index | archive | help
PLEASE. PLEASE, PLEASE ... can anybody help me out to get the
"-type:=direct" option which is broken in FreeBSD working - PLEASE -
i've now tried to debug it some hours but i'm at the end of my
knowlegde - i'll now try to explain what i've done and hope that
someone will take a deeper look into it - PLEASE

the problem:
if you try to use the "-type:=direct" option of the amd (which
should do a "mount -t nfs localhost:/usr/share /a/localhost/usr/share"
for the following amd-map - amd.test - this should be done if i access
/share/something which will then be a link to /a/localhost/usr/share) -
but it will not mount - instead i get an "Stale NFS handle" if i try
to access /share/something - ok and now the result of some hours of
debugging and trying - PLEASE read on ...

what i did: (this is the striped down problem)
* exporting for example /usr/share to the machine itself (/usr/share
  localhost) in /etc/exports

* made the machine serving and clienting (mountd; nfsd -u -t 4; nfsiod
  -n 4)

* made an amd.test map with the following line
  test	type:=nfs;rfs:=/usr/share;rhost:=localhost

* build /usr/src/usr.sbin/amd/amd with the following CFLAGS added
  CFLAGS=-static -g -DDEBUG
  note: here only CFLAGS= not CFLAGS+= - because this way we avoid
  possible set optimizations from other places (more later)

* run this amd:
  ./amd -x all -D all -l amd.log /test amd.test -type:=direct

* watch at amd.log - it says somethere something like:
  ...
  Aug  9 15:36:27 mordillo amd[253]/map:   Trying mount of amd.test on
  /test fstype direct
  Aug  9 15:36:27 mordillo amd[253]/debug: backgrounding mount of "/test"
  Aug  9 15:36:27 mordillo amd[254]/debug: backgrounded
  Aug  9 15:36:27 mordillo amd[253]/debug: 6 new fds allocated; total is 6
  Aug  9 15:36:27 mordillo amd[253]/debug: 0x62ffc bytes of memory
  allocated; total is 0x62ffc (99 pages)
  Aug  9 15:36:27 mordillo amd[253]/debug: Timing out automount points...
  Aug  9 15:36:27 mordillo amd[253]/debug: Next mount timeout in 300s
  Aug  9 15:36:27 mordillo amd[253]/debug: Select waits for 300s
  Aug  9 15:36:27 mordillo amd[254]/debug: mkdir(/test)
  Aug  9 15:36:27 mordillo amd[254]/debug: root_fh substitutes pid 253
  Aug  9 15:36:27 mordillo amd[254]/info:  defeating nfs window computation
  Aug  9 15:36:27 mordillo amd[254]/debug: /test fstype 2 (auto) flags 0
  (intr,rw,port=1023,timeo=8,retrans=110,direct)
  Aug  9 15:37:08 mordillo amd[253]/debug: Process 254 exited with status 0
  Aug  9 15:37:08 mordillo amd[253]/debug: select interrupted
  ...

* i made the same at one of our dec alpha's (where amd with the
  "-type:=direct" option works fine) and it's exactly the same until the
  "select interrupted" - this interruption does'nt occur there - thus
  i think this is the problem

* ok - i changed nfs_start.c: (therefore all optimization must be off)
--- /cdrom/usr/src/usr.sbin/amd/amd/nfs_start.c	Mon May 29 15:45:53 1995
+++ amd/nfs_start.c	Wed Aug  9 15:11:16 1995
@@ -188,6 +188,7 @@
 
 static serv_state run_rpc(P_void)
 {
+	int gdbwait=0;
 	int dtbsz = max_fds + 1;
 	int smask = sigblock(MASKED_SIGS);
 
@@ -250,6 +251,8 @@
 		else
 			dlog("Select waits for Godot");
 #endif /* DEBUG */
+
+		while (gdbwait==0){}
 
 		nsel = do_select(smask, dtbsz, &readfds, &tvv);
 

* now i may start the amd - it stops there and waits until i attach to
  it with gdb - make a "set gdbwait=1" and can debug it (the pid for the
  attach is the one from the "select interrupted" line in the log - here
  253) 

* thus i found that the interruption of that system-call happens at
  line 137 of nfs_start.c (in do_select - the line "(void)
  sigsetmask(smask);")

* and now - can please someone better than me try to find out why the
  interruption happens here - many, many, many thanks in advance - i'll
  help you as much as i can

t 

 _______________________________________________________||_____________________
                                                  __||
 Perfection is reached, not when there is no  __||       thomas graichen
 longer anything to add, but when there   __||      freie universitaet berlin
 is no longer anything to take away   __||              fachbereich physik
                                  __||
 - Antoine de Saint-Exupery - __||
 ___________________________||____email: graichen@omega.physik.fu-berlin.de____



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9508091414.AA24306>