tar: futimens() with a bad file descriptor (AT_FDCWD) causes bootstrapping failure with kernels < 2.6.22
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Release Notes for Ubuntu |
Fix Released
|
Undecided
|
Colin Watson | ||
debootstrap (Ubuntu) |
Triaged
|
Wishlist
|
Unassigned | ||
Lucid |
Won't Fix
|
Wishlist
|
Unassigned | ||
tar (Debian) |
Fix Released
|
Unknown
|
|||
tar (Fedora) |
Fix Released
|
High
|
|||
tar (Ubuntu) |
Fix Released
|
Medium
|
Unassigned | ||
Lucid |
Fix Released
|
Medium
|
Matthias Klose |
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.
Related branches
Changed in tar (Ubuntu): | |
importance: | Undecided → Medium |
Changed in tar (Debian): | |
status: | Unknown → Fix Released |
summary: |
- Impossible to bootstrap Lucid on Dapper + tar/gnulib bug prevents bootstraping Lucid on Dapper, causes Lucid + upgrade to abort on older linux kernels (e.g. in a chroot or Xen VM) |
Changed in ubuntu-release-notes: | |
status: | Won't Fix → Triaged |
summary: |
- tar/gnulib bug prevents bootstraping Lucid on Dapper, causes Lucid - upgrade to abort on older linux kernels (e.g. in a chroot or Xen VM) + tar: futimens() with a bad file descriptor (AT_FDCWD) causes + bootstrapping failure with kernels < 2.6.22 |
Changed in tar (Ubuntu Lucid): | |
status: | In Progress → Triaged |
Changed in tar (Ubuntu Lucid): | |
milestone: | none → lucid-updates |
assignee: | nobody → Canonical Foundations Team (canonical-foundations) |
Changed in tar (Fedora): | |
importance: | Unknown → High |
status: | Unknown → Fix Released |
Description of problem: 22-10.fc12. x86_64) old tar is not able to open this archive.
When I create tar archive with new tar (tar-1.
Version-Release number of selected component (if applicable): 10.fc12. x86_64
tar-1.22-
How reproducible:
always
Steps to Reproduce:
1.create archive with new tar
2.try to extract it with old tar
3.
Actual results: 1.4.20- RC2/images/ folder. png: Cannot utime: Bad file descriptor
/bin/tar: squirrelmail-
I've got this error in koji when updating package:
http:// koji.fedoraproj ect.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.