From owner-freebsd-hackers Thu Oct 17 22:55:14 1996 Return-Path: owner-hackers Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id WAA27732 for hackers-outgoing; Thu, 17 Oct 1996 22:55:14 -0700 (PDT) Received: from Kitten.mcs.com (Kitten.mcs.com [192.160.127.90]) by freefall.freebsd.org (8.7.5/8.7.3) with ESMTP id WAA27724 for ; Thu, 17 Oct 1996 22:55:12 -0700 (PDT) Received: from mailbox.mcs.com (Mailbox.mcs.com [192.160.127.87]) by Kitten.mcs.com (8.8.0/8.8.Beta.3) with SMTP id AAA28063; Fri, 18 Oct 1996 00:55:11 -0500 (CDT) Received: by mailbox.mcs.com (/\==/\ Smail3.1.28.1 #28.15) id ; Fri, 18 Oct 96 00:55 CDT Received: (from karl@localhost) by Jupiter.Mcs.Net (8.8.Beta.6/8.8.Beta.3) id AAA11348; Fri, 18 Oct 1996 00:55:10 -0500 (CDT) From: Karl Denninger Message-Id: <199610180555.AAA11348@Jupiter.Mcs.Net> Subject: Re: NFS node: disappearing directory To: michaelh@cet.co.jp (Michael Hancock) Date: Fri, 18 Oct 1996 00:55:09 -0500 (CDT) Cc: karl@Mcs.Net, freebsd-hackers@freebsd.org In-Reply-To: from "Michael Hancock" at Oct 18, 96 02:52:47 pm X-Mailer: ELM [version 2.4 PL24] Content-Type: text Sender: owner-hackers@freebsd.org X-Loop: FreeBSD.org Precedence: bulk > > 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) > > 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? That does NOT work on BSD systems. -- -- Karl Denninger (karl@MCS.Net)| MCSNet - The Finest Internet Connectivity http://www.mcs.net/~karl | T1 from $600 monthly; speeds to DS-3 available | 23 Chicagoland Prefixes, 13 ISDN, much more Voice: [+1 312 803-MCS1 x219]| Email to "info@mcs.net" WWW: http://www.mcs.net/ Fax: [+1 312 248-9865] | Home of Chicago's only FULL Clarinet feed!