delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2003/08/07/14:49:28

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sources.redhat.com/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sources.redhat.com/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
From: David Rothenberger <daveroth AT acm DOT org>
MIME-Version: 1.0
Message-ID: <16178.40732.673704.456513@phish.entomo.com>
Date: Thu, 7 Aug 2003 11:49:00 -0700
To: cygwin AT cygwin DOT com
Subject: Re: What is the minimum needed to run gtar?
In-Reply-To: <3F3150CF.1F053532@acm.org>
References: <3D5E0EA708C5DD44B7575859D366728C2DC29D AT svr-orw-exc-02 DOT wv DOT mentorg DOT com>
<3F3150CF DOT 1F053532 AT acm DOT org>
Reply-To: cygwin AT cygwin DOT com

David Rothenberger writes:
 > "Biederman, Steve" wrote:
 > > 
 > > I want to allow the users I support to be able to run Cygwin tar on their Windows machines.
 > > These machines have not had any Cygwin installed; they're just bare Windows machines.
 > > 
 > > I provided them tar.exe and cygwin1.dll and assumed that with these, they could run
 > > Cygwin tar sucessfully.  It appears that that isn't the case: machines without Cygwin
 > > installed see different behavior than machines which have it installed.  (Running tar
 > > on machines without Cygwin installed creates incorrect tar archives.)
 > 
[snip]
 > Through experimentation, I discovered that the problem went away if I
 > created an /etc mount.

I did a little debugging on this.  It turns out that when tar
"hangs", the process is in an infinite loop in malloc_consolidate().
For some reason, one of the chunk's forward links points to itself.
I can "solve" this problem by adding (p != nextp) to the loop check
in malloc_consolidate(), but I doubt that's the right solution.

I'm just guessing, but I don't think a malloc chunk should be linked
to itself.  Is this an indication that the app is trashing memory?

I tried recompiling tar after fiddling with configure so it would
think that malloc() was not working and use its own replacement, but
this didn't change the behavior.

I compared the strace output for both cases and the only difference
I found was 2 extra

   etc::dir_changed: fn[1] \etc\passwd change_possible 1
   ...
   pwdgrp::load: /etc/passwd
   pwdgrp::load: strange path_conv problem
   load: /etc/passwd load failed
   etc::dir_changed: fn[2] \etc\group change_possible 1
   ...
   pwdgrp::load: /etc/group
   pwdgrp::load: strange path_conv problem
   pwdgrp::load: /etc/group load failed

sequences in the failing case and one additional sequence just for
/etc/passwd.

I find it curious that
  * The problem is related to the length of the paths of the
    directories being added to the tar file.
  * The problem goes away when /etc is a valid directory.

I'm out of ideas on what to try next.  Anyone have a suggestion on
how I can continue debugging this?

Dave



--
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