delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2009/11/27/05:57:15

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-1.3 required=5.0 tests=AWL,BAYES_00
X-Spam-Check-By: sourceware.org
Date: Fri, 27 Nov 2009 11:57:02 +0100
To: cygwin AT cygwin DOT com
Subject: Re: tar hangs on unpacking calcoo_1.3.16.orig.tar
Message-ID: <20091127105701.GA30132@win.tue.nl>
References: <5a05e0e60911261052w2e60586cxe7a90d02b4cf6e0f AT mail DOT gmail DOT com> <20091126213025 DOT GA26443 AT win DOT tue DOT nl> <4B0EF59B DOT 90609 AT cs DOT umass DOT edu> <20091127002050 DOT GA27305 AT win DOT tue DOT nl> <20091127005219 DOT GE18148 AT ednor DOT casa DOT cgf DOT cx> <20091127085608 DOT GW29173 AT calimero DOT vinschen DOT de>
MIME-Version: 1.0
In-Reply-To: <20091127085608.GW29173@calimero.vinschen.de>
User-Agent: Mutt/1.5.18 (2008-05-17)
From: rp AT win DOT tue DOT nl (Reinier Post)
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
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 Fri, Nov 27, 2009 at 09:56:08AM +0100, Corinna Vinschen wrote:
> On Nov 26 19:52, Christopher Faylor wrote:
> > On Fri, Nov 27, 2009 at 01:20:50AM +0100, Reinier Post wrote:
> > >On Thu, Nov 26, 2009 at 04:39:39PM -0500, Eliot Moss wrote:
> > >> I wonder if some process has created the file in
> > >> question and still has it open. Then a call to
> > >> create, and a call to unlink, will both fail.
> > >
> > >But the call to open is failing (the fd returned is -1),
> > >which is why the unlink() is executed in the first place,
> > >and it does *not* fail.
> > >
> > >My vote for Stephan Mueller's suggestion that the 'aux' in the
> > >name is causing the problem - but this still doesn't explaing why
> > >the unlink() claims to succeed (returning 0); the loop within tar
> > >should be changed to deal with this situation in any case.
> > 
> > No, it shouldn't.  We are not going to patch every conceivable
> > program to understand MS-DOS special files.

I am not asking for tar to deal with a special file,
but with a C source code file that happens to be named aux.c.
I'm not even asking for it to write that file, merely not to go
into an infinite loop.  I know tar can easily hang on certain input
(e.g. /dev/zero) but I think this particular behavior is not something
users can be expected to work around preventively - a bug.
(I found it by running a script that invokes tar 63000 times overnight,
 and tar is often used in such non-interactive contexts.)

Can't this be handled at the system call level?
After all it's not the tar source code but unlink()'s return code
that seems to cause the problem.

> > This won't be a problem with Cygwin 1.7.  If you want a fix change
> > to that.

Thank you, I wasn't aware of 1.7.

> Just as a sidenote a pointer to the new User's Guide:
> http://cygwin.com/1.7/cygwin-ug-net/using-specialnames.html#pathnames-dosdevices
> 
> Corinna

Very helpful, thank you.

-- 
Reinier Post

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

- Raw text -


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