From owner-freebsd-hackers Thu Oct 17 23:07:29 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id XAA28526 for hackers-outgoing; Thu, 17 Oct 1996 23:07:29 -0700 (PDT) Received: from parkplace.cet.co.jp (parkplace.cet.co.jp [202.32.64.1]) by freefall.freebsd.org (8.7.5/8.7.3) with ESMTP id XAA28519 for ; Thu, 17 Oct 1996 23:07:26 -0700 (PDT) Received: from localhost (michaelh@localhost) by parkplace.cet.co.jp (8.8.0/CET-v2.1) with SMTP id GAA01473; Fri, 18 Oct 1996 06:07:13 GMT Date: Fri, 18 Oct 1996 15:07:13 +0900 (JST) From: Michael Hancock Reply-To: Michael Hancock To: Karl Denninger cc: freebsd-hackers@freebsd.org Subject: Re: NFS node: disappearing directory In-Reply-To: <199610180555.AAA11348@Jupiter.Mcs.Net> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: owner-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk On Fri, 18 Oct 1996, Karl Denninger wrote: > > > 1) When it fails, the up-movement works but the inode > > > number is NOT seen in the FIRST component when the directory > > > read is performed. (ie: the directory is > > > "/user/contrib/swilson", the first component is 'swilson' > > > and that is not found at the first "step-up". > > > > Is this remote /user mounted on local /user? This might not be relevant, > > but it helps in understanding the execution path. > > Yes. > > > > Current speculation is that this is a vnode cache handling problem of some > > > kind, where the vnode for the desired directory is being "flushed" but > > > never reloaded into the cache. We're still investigating and searching for > > > the root cause. > > > > But 3) says it does get reloaded. > > Sometimes. But if go to the "up-level" when it happens and do a "ls", you > get a VERY short list (~10% of what's really there - right about 200 > entries) Umm. Is John around? What kind of memory does the result of readdir go into? > > > An example: > > > > > > / - 755 > > > /user - 755 > > > /user/contrib - 711 > > > /user/contrib/who-am-i - 700 > > > > > > The user is "who-am-i", and in that directory. > > > > > > getcwd() will return an error in this environment, as when it tries to READ > > > /user/contrib to find the inode match for the "who-am-i" component it is > > > unable to open that directory for this purpose. > > > > > > I'm doing a brain-search on ways to make it possible to protect things in > > > this fashion and still have the getcwd() call succeed, but I don't know if > > > its even possible. > > > > The above permissions work under SysV. > > Can you be in "who-am-i" and do a "pwd" and have it work? Yup, just tested it /home2 root 755 /home2/contrib root 711 /home2/contrib/joe joe 700 As joe, cd /home2/contrib/joe pwd /home2/contrib/joe