[Bug 539814] Re: tar: futimens() with a bad file descriptor (AT_FDCWD) causes bootstrapping failure with kernels < 2.6.22

Bug Watch Updater 539814 at bugs.launchpad.net
Fri Oct 27 07:05:50 UTC 2017


Launchpad has imported 9 comments from the remote bug at
https://bugzilla.redhat.com/show_bug.cgi?id=552320.

If you reply to an imported comment from within Launchpad, your comment
will be sent to the remote bug automatically. Read more about
Launchpad's inter-bugtracker facilities at
https://help.launchpad.net/InterBugTracking.

------------------------------------------------------------------------
On 2010-01-04T17:10:01+00:00 Michal wrote:

Description of problem:
When I create tar archive with new tar (tar-1.22-10.fc12.x86_64) old tar is not able to open this archive. 

Version-Release number of selected component (if applicable):
tar-1.22-10.fc12.x86_64

How reproducible:
always

Steps to Reproduce:
1.create archive with new tar
2.try to extract it with old tar
3.
  
Actual results:
/bin/tar: squirrelmail-1.4.20-RC2/images/folder.png: Cannot utime: Bad file descriptor

I've got this error in koji when updating package:

http://koji.fedoraproject.org/koji/getfile?taskID=1901164&name=build.log


Expected results:
extracted archive

Additional info:
this breaks package updates where maintainer has to recreate tar archive. Also upstream tarballs where upstream uses Fedora system may produce broken tarballs which is even worse, so I consider this to be high severity.

Reply at:
https://bugs.launchpad.net/ubuntu/+source/tar/+bug/539814/comments/0

------------------------------------------------------------------------
On 2010-01-04T17:24:39+00:00 Kamil wrote:

We figured out off-list the "old tar" from original report is
1.22-11.fc13, which is more likely a newer one :-)

Reply at:
https://bugs.launchpad.net/ubuntu/+source/tar/+bug/539814/comments/1

------------------------------------------------------------------------
On 2010-01-04T20:53:45+00:00 Ondrej wrote:

As a sidenote - there were more such reports off-the-bugzlla - most
likely caused by recent change in the new glibc - anyway - as the glibc
maintainers are quite sure the problem is in tar, we should probably fix
it.

Reply at:
https://bugs.launchpad.net/ubuntu/+source/tar/+bug/539814/comments/2

------------------------------------------------------------------------
On 2010-01-05T14:32:52+00:00 Ondrej wrote:

> > That looks like a bug in tar, trying to call futimens with a bad file
> > descriptor.
> > Andreas Schwab
>  Probably, possibly exposed by this recent change in glibc-2.11.90-5:
> - Handle AT_FDCWD in futimens (BZ#10992).
> Tomas Bzatek

Adding relevant part of the off-the-bugzilla conversation.

Reply at:
https://bugs.launchpad.net/ubuntu/+source/tar/+bug/539814/comments/3

------------------------------------------------------------------------
On 2010-01-05T15:25:18+00:00 Ondrej wrote:

Here is duplicate report in debian (they have same problems with eglibc
updated to POSIX2008) - patch fixing the issue is available there -
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=563726 - However - I
tend to use latest gnulib lib/utimens.c - though - as they are other
utimens/utimensat call related fixes.

Reply at:
https://bugs.launchpad.net/ubuntu/+source/tar/+bug/539814/comments/4

------------------------------------------------------------------------
On 2010-01-05T19:29:13+00:00 Ondrej wrote:

Ah - even the latest gnulib doesn't handle this new recent change - so
touch from coreutils might be affected as well as mentioned in debian
bugzilla from comment #4. Therefore adding coreutils/gnulib upstream
maintainer into CC.

Jim, what do you think? Is the patch from http://bugs.debian.org/cgi-
bin/bugreport.cgi?bug=563726#66 good way to go and should be applied to
gnulib/coreutils-8.3 to prevent touch (or better said futimens() with
AT_FDCWD file descriptor) failures after glibc update?

Reply at:
https://bugs.launchpad.net/ubuntu/+source/tar/+bug/539814/comments/5

------------------------------------------------------------------------
On 2010-01-05T21:27:01+00:00 Ondrej wrote:

Fixed in tar-1.22-12.fc13, closing RAWHIDE.

Reply at:
https://bugs.launchpad.net/ubuntu/+source/tar/+bug/539814/comments/6

------------------------------------------------------------------------
On 2010-01-05T21:50:02+00:00 Jim wrote:

Hi Ondrej,

Thanks again for the heads up.
I've replied on bug-gnulib and Cc'd the debian bug address.
(too bad bugzilla doesn't have a reply-to-via-email option):

http://bugs.debian.org/563726#88

Reply at:
https://bugs.launchpad.net/ubuntu/+source/tar/+bug/539814/comments/7

------------------------------------------------------------------------
On 2010-01-05T23:54:41+00:00 Ondrej wrote:

Thanks Jim for replies/confirmation of bugfix correctness. Yep - it
would be good bugzilla improvement to have such thing.

Reply at:
https://bugs.launchpad.net/ubuntu/+source/tar/+bug/539814/comments/8


** Changed in: tar (Fedora)
       Status: Unknown => Fix Released

** Changed in: tar (Fedora)
   Importance: Unknown => High

-- 
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to debootstrap in Ubuntu.
https://bugs.launchpad.net/bugs/539814

Title:
  tar: futimens() with a bad file descriptor (AT_FDCWD) causes
  bootstrapping failure with kernels < 2.6.22

Status in Release Notes for Ubuntu:
  Fix Released
Status in debootstrap package in Ubuntu:
  Triaged
Status in tar package in Ubuntu:
  Fix Released
Status in debootstrap source package in Lucid:
  Won't Fix
Status in tar source package in Lucid:
  Fix Released
Status in tar package in Debian:
  Fix Released
Status in tar package in Fedora:
  Fix Released

Bug description:
  Binary package hint: tar

  Bootstrapping Ubuntu Lucid with debootstrap is currently impossible
  with any kernel < 2.6.22, due to a bug in tar - specifically it fails
  because of a change to eglibc.

  According to the debian bug report It seems that before eglibc
  2.10.2-3, calls to futimens failed silently, however due to a patch
  made to eglibc 2.10.2-3, if futimens is called without a valid file
  descriptor, it now fails with an "Bad File Descriptor" error, because
  the corresponding utimensat() syscall was not added until kernel
  2.6.22

  Test Case:
  1) Boot a kernel older than 2.6.22
  2) Attempt to Bootstrap Ubuntu Lucid to any target.
  The bootstrap will fail once it attempts to unpack packages with: tar: ./postinst: Cannot utime: Bad file descriptor

  A patch is available (attached in launchpad) originating from the associated debian bug, that ensures that futimens is only called with a valid file descriptor.
  A debdiff for 1.22-2 ( changing to 1.22-2ubuntu1 ) will be attached shortly.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-release-notes/+bug/539814/+subscriptions



More information about the foundations-bugs mailing list