This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

tar hangs on unpacking calcoo_1.3.16.orig.tar


  Dear list,

I've been using Cygwin daily for years and I'm very happy with it.
But today it threw a nice puzzle at me.  I must confess I became
a list member just to report it.

My Cygwin /usr/bin/tar hangs when unpacking an archive:

  curl ftp://ftp.debian.org/debian/pool/main/c/calcoo/calcoo_1.3.16.orig.tar.gz
| tar zxvf -

hangs after printing the line

  calcoo-1.3.16/src/aux.c

This happens on two different i386 systems, both running an up to date Cygwin
on an up to date Windows XP with the latest security patches applied.
The file system is NTFS.

No such problem exists on Linux.

There must be something odd with this particular archive;
the ones preceding it on the FTP server have no such problem.
But tar should never hang in an infinite loop,
regardless of the input we throw at it.

The same thing happens when the tarball is saved to disk,
gunzipped, and then untarred without the z option.
It also happens with tar-1.20 (current is tar-1.21),
and with tar-1.20 compiled from source, both with and without
Cygwin patches applied.  gdb reveals that the problem is in the loop in

  src/extract.c

which looks like this (in tar-1.20):

763  do
764    fd = open_output_file (file_name, typeflag, mode ^ invert_permissions);
765  while (fd < 0 && maybe_recoverable (file_name, &interdir_made));

fd is set to -1, which causes maybe_recoverable() to be entered,
which attempts to unlink(file_name), which returns 0 even though
the file does *not* exist, which causes maybe_recoverable() to return 1
and the loop to repeat forever.

I don't know why this is happening, let alone how to repair it.

Does Cygwin have a bugtracker?

Help!

-- 
Reinier Post
TU Eindhoven

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]