clone 563724 -1
clone 563724 -2
reassign -1 tar
severity -1 important
retitle -1 tar: call futimens() with a bad file descriptor
reassign -2 coreutils
severity -2 important
retitle -2 touch: call futimens() with a bad file descriptor (AT_FDCWD)
retitle 563724 futimens() is not POSIX compliant
block 563724 by -1
block 563724 by -2

On Mon, Jan 04, 2010 at 10:09:16PM +0100, Bill Allombert wrote:
> Package: libc6
> Version: 2.10.2-3
> Hello Debian libc maintainers,
> I run a sid chroot on top of etch, using the etch kernel linux 2.6.18-6-686,
> and dpkg started to fail with
> tar: ./preinst: Cannot utime: Bad file descriptor
> touch also fails:
> %mkdir /tmp/bar
> %touch /tmp/bar
> touch: setting times of `/tmp/bar': Bad file descriptor
> strace report:
> utimensat(AT_FDCWD, "/tmp/bar", NULL, 0) = -1 ENOSYS (Function not 
> implemented)
> It seems that the issue is that the etch kernel does not implement
> utimensat. 

The problem is actually different. The utimensat is called by tar or
touch, which when it does not exists fallback to futimens(). This part
hasn't changed.

futimens() in glibc is now POSIX 2008 compliant, and return -EBADF when
a bad file descriptor is passed. This is actually what tar and touch
do when it calls futimens(AT_FDCWD, ...).

I will temporarily revert this patch, and I am cloning this bug to tar
and touch so that they are fixed. I'll reapply it when they are fixed.

Aurelien Jarno                          GPG: 1024D/F1BCDB73       

To UNSUBSCRIBE, email to
with a subject of "unsubscribe". Trouble? Contact

Reply via email to