delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2006/07/12/00:19:51

X-Spam-Check-By: sourceware.org
Date: Wed, 12 Jul 2006 00:19:36 -0400 (EDT)
From: Igor Peshansky <pechtcha AT cs DOT nyu DOT edu>
Reply-To: cygwin AT cygwin DOT com
To: "Victor E. Vaile, IV" <victorv4 AT yahoo DOT com>
cc: cygwin AT cygwin DOT com
Subject: Re: Find working improperly causes updatedb to take forever
In-Reply-To: <44B460CC.49C960A1@yahoo.com>
Message-ID: <Pine.GSO.4.63.0607120003290.26009@access1.cims.nyu.edu>
References: <44B460CC DOT 49C960A1 AT yahoo DOT com>
MIME-Version: 1.0
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Unsubscribe: <mailto:cygwin-unsubscribe-archive-cygwin=delorie DOT com AT cygwin DOT com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

On Tue, 11 Jul 2006, Victor E. Vaile, IV wrote:

> Hello,
>
> 	I upgraded my cygwin today from 1.5.19-4 to 1.5.20-1 (along with
> other various packages to their current versions).  I ran updatedb, and
> instead of it taking less than a few minutes, the prompt hadn't returned
> after several minutes.  I fired up procexp.exe (from sysinternals.com)
> and saw that the find.exe process was opening several registry keys in
> HKCR.  This process was taking between 20-45% of my cpu as well.  I did
> a quick test of the following command:
>
> /usr/bin/find / \( -fstype proc \) -prune -o -print0
>
> Sure enough, the find command happily started traversing the /proc
> registry keys.  I reverted the cygwin base (keeping everything else
> installed as is, although I don't know if there are any dependencies
> that might be reverted automatically) back to 1.5.19-4, and did the same
> test, and find exited properly before descending into /proc as expected.
> I'm currently using 1.5.19-4 again. :(
>
> 	As far as I know the syntax for the find command should work as
> above.  (I actually made a copy of the updatedb script and changed it to
> echo the find command it was using to make sure.)  Anyway, I saw another
> post to this list with the subject "Updatedb does not finish", however I
> didn't see any replies, or updates, and just thought I'd mail the list
> in case anyone is interested, or has any other insights. Thanks.

The most likely change from 1.5.19 to 1.5.20 that caused this is the fact
that virtual directories (/proc, /dev, etc) are now enumerated as part of
the root directory listing.  So, not only would your find recurse into
/proc, it would probably also recurse into /cygdrive, unless you use the
-xdev option (which updatedb doesn't by default).

As for "-fstype proc" not matching /proc, that is probably a real bug,
though it's unclear whether the bug is in findutils or Cygwin.
Basically, findutils reads through the mount table entries, and expects
all filesystems to be there (including /proc, etc).  Under Cygwin, /proc
doesn't appear as a separate mount table entry, and thus is missed by
findutils.  Depending on whether POSIX mandates that /proc appear in the
mount table or not, either Cygwin or findutils needs to be fixed.  Since
findutils uses GNUlib's read_file_system_list(), it's also possible that
the fix needs to be made there.

For more info, see the findutils source (find/fstype.c is the most
relevant source file, I believe).  As a workaround, you might want to add
/proc to PRUNEPATHS.
HTH,
	Igor
-- 
				http://cs.nyu.edu/~pechtcha/
      |\      _,,,---,,_	    pechtcha AT cs DOT nyu DOT edu | igor AT watson DOT ibm DOT com
ZZZzz /,`.-'`'    -.  ;-;;,_		Igor Peshansky, Ph.D. (name changed!)
     |,4-  ) )-,_. ,\ (  `'-'		old name: Igor Pechtchanski
    '---''(_/--'  `-'\_) fL	a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

"Las! je suis sot... -Mais non, tu ne l'es pas, puisque tu t'en rends compte."
"But no -- you are no fool; you call yourself a fool, there's proof enough in
that!" -- Rostand, "Cyrano de Bergerac"

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019