Date: Wed, 9 Aug 1995 13:36:20 -0500 (CDT) From: faulkner@mpd.tandem.com (Boyd Faulkner) To: graichen@sirius.physik.fu-berlin.de (Thomas Graichen) Cc: hackers@freebsd.org, ezk@cs.columbia.edu Subject: Re: PLEASE help me to get broken FreeBSD automounter working PLEASE !!! Message-ID: <9508091836.AA04499@olympus> In-Reply-To: <9508091414.AA24306@sirius.physik.fu-berlin.de> from "Thomas Graichen" at Aug 9, 95 04:14:55 pm
next in thread | previous 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____ > -- _______________________________________________________________________ Boyd Faulkner - faulkner@isd.tandem.com - http://cactus.org/~faulkner _______________________________________________________________________
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?9508091836.AA04499>