delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2000/08/10/14:15:37

Mailing-List: contact cygwin-help AT sourceware DOT cygnus DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT sources DOT redhat DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT sources DOT redhat DOT com>
List-Help: <mailto:cygwin-help AT sources DOT redhat DOT com>, <http://sources.redhat.com/ml/#faqs>
Sender: cygwin-owner AT sources DOT redhat DOT com
Delivered-To: mailing list cygwin AT sources DOT redhat DOT com
From: Chris Faylor <cgf AT cygnus DOT com>
Date: Thu, 10 Aug 2000 14:13:49 -0400
To: cygwin AT sourceware DOT cygnus DOT com
Subject: Re: gdbm & cvs packages ready for official inclusion?
Message-ID: <20000810141348.A4458@cygnus.com>
Reply-To: cygwin AT sources DOT redhat DOT com
Mail-Followup-To: cygwin AT sourceware DOT cygnus DOT com
References: <3991BCE6 DOT 575B808F AT ece DOT gatech DOT edu> <20000810094335 DOT B1202 AT KOSH> <3992CF05 DOT E3B2FFA8 AT ece DOT gatech DOT edu> <3992D4B6 DOT 63769272 AT ece DOT gatech DOT edu> <20000810140439 DOT A1030 AT KOSH>
Mime-Version: 1.0
User-Agent: Mutt/1.3.6i
In-Reply-To: <20000810140439.A1030@KOSH>; from Jason.Tishler@dothill.com on Thu, Aug 10, 2000 at 02:04:40PM -0400

On Thu, Aug 10, 2000 at 02:04:40PM -0400, Jason Tishler wrote:
>On Thu, Aug 10, 2000 at 12:13:42PM -0400, Charles S. Wilson wrote:
>> Instead, can you verify that Alan Griffiths' analysis is
>> correct?
>> 
>> Alan Griffiths wrote:
>> > I don't follow the code well enough to be sure what is going on, but this
>> > is caused by the call to 'isdir' at line 437 of ignore.c (in 1.10.7 anyway).
>> > 
>> > Resetting errno after the call suppresses the message.  (I don't propose
>> > this as a fix since there probably is a problem in the code and this would
>> > hide it.)
>
>I can't confirm that the problem is caused by isdir() as described by Alan,
>but he is definitely correct that the problem is in:
>
>    src/ignore.c:ignore_files()
>
>I can offer the following few more tidbits.  We have from the original cvs
>1.10.8 source:
>
>    void
>    ignore_files (ilist, entries, update_dir, proc)
>    {
>        ...
>        errno = 0;
>        while ((dp = readdir (dirp)) != NULL)
>        {
>            ...
>        }
>        if (errno != 0)
>            error (0, errno, "error reading current directory");
>        ...
>    }
>
>So during a cvs update, some code executed during the while loop is setting
>errno to nonzero.  By greping sys/errno.h, we get that "Function not
>implemented" maps to ENOSYS.
>
>Without using gdb, I can't offer any more.  Shame on me, but I have never
>used gdb before -- although I have used many other debugger.  Anyway, I'm
>willing to give gdb a whirl, but I believe that you could set up cvs in
>client/server mode much faster than I can get up to speed with gdb.
>Especially, if you have a UNIX/Linux box lying around with a cvs
>repository on it.

I looked at the sources and it looks like whomever wrote readdir made
some false assumptions about the values of errno.  It looks like it will
always set errno when there are no more files.  I'm testing a fix for
this now.

I appreciate your offer to debug the problem, though.  We really could
use more help on this project.  This mailing list seems to have an
incredibly high user to developer ratio.

cgf

--
Want to unsubscribe from this list?
Send a message to cygwin-unsubscribe AT sourceware DOT cygnus DOT com

- Raw text -


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