coreutils affected by "Bad file descriptor" error with new glibc on older kernel
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
coreutils |
Fix Released
|
Unknown
|
|||
coreutils (Debian) |
Fix Released
|
Unknown
|
|||
coreutils (Ubuntu) |
Fix Released
|
Medium
|
Unassigned | ||
Lucid |
Fix Released
|
Medium
|
Unassigned |
Bug Description
Binary package hint: coreutils
After I recently upgraded a virtual machine running linux 2.6.18 to Lucid, I noticed that I was getting some strange errors from coreutils utilities:
$ mkdir temp
$ touch temp
touch: setting times of `temp': Bad file descriptor
$ cp -pr temp temp2
cp: preserving times for `temp2': Bad file descriptor
I found an explaination for these errors in Debug bug report 563754 (and related bugs): a recent change to the libc6 library (included in the Lucid version) corrected a bug in the behavior of the "futimens" function when running on older kernels, which in turn exposed a bug in the gnulib library, and that in turn causes these errors when using various coreutils binaries.
Related branches
Changed in coreutils: | |
status: | Unknown → Fix Released |
Changed in coreutils (Debian): | |
status: | Unknown → Fix Released |
One fix for this would be to upgrade to coreutils 8.3 (or later). The release notes for 8.3 include this entry:
cp -p, install -p, mv, and touch -c could trigger a spurious error
message when using new glibc coupled with an old kernel.
[bug introduced in coreutils-6.12].
For a more target fix, it may be possible just to apply the upstream gnulib patch to the existing Lucid coreutils package: git.savannah. gnu.org/ cgit/gnulib. git/commit/ ?id=41c44a66101 c6c14b4e7f15124 7d517579760ba9
http://
Here's a link to the bug-coreutils thread on the topic: lists.gnu. org/archive/ html/bug- coreutils/ 2010-01/ msg00042. html
http://
and the (overlapping) thread on the bug-gnulib list: lists.gnu. org/archive/ html/bug- gnulib/ 2010-01/ msg00044. html
http://