From: Magicloud Magiclouds on
Hi, today, while I was trying to `aptitude upgrade`, I got this for
all upgrading packages:

tar: ./postrm: Cannot utime: Bad file descriptor
tar: ./postinst: Cannot utime: Bad file descriptor
tar: ./md5sums: Cannot utime: Bad file descriptor
tar: ./shlibs: Cannot utime: Bad file descriptor
tar: ./control: Cannot utime: Bad file descriptor
tar: ./symbols: Cannot utime: Bad file descriptor
tar: .: Cannot utime: Bad file descriptor
tar: Exiting with failure status due to previous errors
dpkg-deb: subprocess tar returned error exit status 2
dpkg: error processing
/var/cache/apt/archives/libffi5_3.0.9-1_i386.deb (--unpack):
subprocess dpkg-deb --control returned error exit status 2

I cannot quite understand this. What happened?
I have test the .deb file with 7-zip, the file is not interrupted.

--
竹密岂妨流水过
山高哪阻野云飞


--
To UNSUBSCRIBE, email to debian-user-REQUEST(a)lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster(a)lists.debian.org
From: Boyd Stephen Smith Jr. on
In <3bd412d41001031756t5871de86sd7963e6a0262f7ec(a)mail.gmail.com>, Magicloud
Magiclouds wrote:
>tar: ./postrm: Cannot utime: Bad file descriptor
>tar: ./postinst: Cannot utime: Bad file descriptor
>tar: ./md5sums: Cannot utime: Bad file descriptor
>tar: ./shlibs: Cannot utime: Bad file descriptor
>tar: ./control: Cannot utime: Bad file descriptor
>tar: ./symbols: Cannot utime: Bad file descriptor
>tar: .: Cannot utime: Bad file descriptor
>tar: Exiting with failure status due to previous errors
>dpkg-deb: subprocess tar returned error exit status 2
>dpkg: error processing
>/var/cache/apt/archives/libffi5_3.0.9-1_i386.deb (--unpack):
> subprocess dpkg-deb --control returned error exit status 2
>
>I cannot quite understand this. What happened?
>I have test the .deb file with 7-zip, the file is not interrupted.

Some filesystem full or near full? Using a filesystem that doesn't support
all the POSIX timestamps?
--
Boyd Stephen Smith Jr. ,= ,-_-. =.
bss(a)iguanasuicide.net ((_/)o o(\_))
ICQ: 514984 YM/AIM: DaTwinkDaddy `-'(. .)`-'
http://iguanasuicide.net/ \_/
From: Guillaume Ayoub on
>In <3bd412d41001031756t5871de86sd7963e6a0262f7ec(a)mail.gmail.com>, Magicloud
>Magiclouds wrote:
>>tar: ./postrm: Cannot utime: Bad file descriptor
>>tar: ./postinst: Cannot utime: Bad file descriptor
>>tar: ./md5sums: Cannot utime: Bad file descriptor
>>tar: ./shlibs: Cannot utime: Bad file descriptor
>>tar: ./control: Cannot utime: Bad file descriptor
>>tar: ./symbols: Cannot utime: Bad file descriptor
>>tar: .: Cannot utime: Bad file descriptor
>>tar: Exiting with failure status due to previous errors
>>dpkg-deb: subprocess tar returned error exit status 2
>>dpkg: error processing
>>/var/cache/apt/archives/libffi5_3.0.9-1_i386.deb (--unpack):
>> subprocess dpkg-deb --control returned error exit status 2
>>
>>I cannot quite understand this. What happened?
>>I have test the .deb file with 7-zip, the file is not interrupted.

>Some filesystem full or near full? Using a filesystem that doesn't support
>all the POSIX timestamps?

Hello,

I have the same problem. It appeared just after upgrading libc6 from 2.10.2-2
to 2.10.2-3. Looking at the eglibc Changelog may help (but I didn't find
anything).

I tried to find the reason, and it seems to come from touch. Touch now works
for me only for files, but not for folders:

$ ls -l
total 4
drwxr-xr-x 2 user users 4096 jan. 4 17:22 test_directory
-rw-r--r-- 1 user users 0 jan. 4 17:22 test_file

$touch test_file
$touch test_directory
touch: setting times of `test_directory': Bad file descriptor

tar uses touch and fails, dpkg uses tar and apt-get uses dpkg, so apt-get
fails :). Other programs using touch on folders (such as postfix) fail to
start too.

A small quick and dirty hack is to use the --touch option for tar. You can do
this with "$export TAR_OPTIONS='--touch'". After this, tar seems to work,
postfix starts again. Unfortunately, dpkg does not use $TAR_OPTIONS (as said
in bug #530860) and I didn't find a solution to pass an option to tar in dpkg.

My filesystem is ext3, my partition is not full. It worked well with
libc6-2.10.2-2. I have quite an old kernel (2.6.21.1 modified by my hosting
provider).

Without tar/dpkg/apt-get, it seems quite difficult to downgrade libc6 to
2.10.2-2. If someone had an idea, that would be *great* news.

Thanks,
--
Guillaume Ayoub


--
To UNSUBSCRIBE, email to debian-user-REQUEST(a)lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster(a)lists.debian.org
From: Sven Joachim on
On 2010-01-04 17:48 +0100, Guillaume Ayoub wrote:

> I have the same problem. It appeared just after upgrading libc6 from 2.10.2-2
> to 2.10.2-3. Looking at the eglibc Changelog may help (but I didn't find
> anything).

Please file a bug against libc6.

> I tried to find the reason, and it seems to come from touch. Touch now works
> for me only for files, but not for folders:
>
> $ ls -l
> total 4
> drwxr-xr-x 2 user users 4096 jan. 4 17:22 test_directory
> -rw-r--r-- 1 user users 0 jan. 4 17:22 test_file
>
> $touch test_file
> $touch test_directory
> touch: setting times of `test_directory': Bad file descriptor
>
> tar uses touch and fails, dpkg uses tar and apt-get uses dpkg, so apt-get
> fails :). Other programs using touch on folders (such as postfix) fail to
> start too.
>
> A small quick and dirty hack is to use the --touch option for tar. You can do
> this with "$export TAR_OPTIONS='--touch'". After this, tar seems to work,
> postfix starts again. Unfortunately, dpkg does not use $TAR_OPTIONS (as said
> in bug #530860) and I didn't find a solution to pass an option to tar in dpkg.

It might help to write a small wrapper for tar, like this (assuming you
have /root/bin in $PATH before /bin):

#! /bin/sh
# /root/bin/tar
exec /bin/tar --touch "$@"

> My filesystem is ext3, my partition is not full. It worked well with
> libc6-2.10.2-2. I have quite an old kernel (2.6.21.1 modified by my hosting
> provider).

Such old kernels are probably not well tested by the eglibc developers.

> Without tar/dpkg/apt-get, it seems quite difficult to downgrade libc6 to
> 2.10.2-2. If someone had an idea, that would be *great* news.

If the trick suggested above does not work, you could use ar and tar
directly to extract /lib/libc-2.10.2.so from the libc6 2.10.2-2 .deb.

Sven


--
To UNSUBSCRIBE, email to debian-user-REQUEST(a)lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster(a)lists.debian.org
From: Sven Joachim on
On 2010-01-04 18:39 +0100, Sven Joachim wrote:

> On 2010-01-04 17:48 +0100, Guillaume Ayoub wrote:
>
>> I have the same problem. It appeared just after upgrading libc6 from 2.10.2-2
>> to 2.10.2-3. Looking at the eglibc Changelog may help (but I didn't find
>> anything).
>
> Please file a bug against libc6.

A debdiff showed that there is a new patch in eglibc 2.10.2-3,
debian/patches/any/cvs-futimens.diff, that causes the "bad file
descriptor" problem to be reported. I assume that previously
futimens() just failed silently, because…

>> I have quite an old kernel (2.6.21.1 modified by my hosting
>> provider).

…the corresponding utimensat() syscall was added in Linux 2.6.22.

Sven


--
To UNSUBSCRIBE, email to debian-user-REQUEST(a)lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster(a)lists.debian.org