[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Fatal problems with dpkg<->dpkg-deb communication in 1.8.1



On Sat, 06 Jan 2001 at 19:10:09 -0600, Adam Heath wrote:
> On Sat, 6 Jan 2001, Colin Watson wrote:
> > When I installed dpkg 1.8.1 at work a few hours ago I couldn't install
> > any packages with it; while unpacking, it got EAGAIN when trying to read
> > from its pipe to dpkg-deb, and then segfaulted. This was in
> > lib/mlib.c:buffer_read() and lib/mlib.c:buffer_copy() at least, which at
> > the moment tolerate EINTR but not EAGAIN. In the end I had to manually
> > extract dpkg_1.7.2_i386.deb in the root directory and then reinstall
> > dpkg 1.7.2 properly to get everything working again.
> > 
> > This was on a machine being upgraded from potato to sid; the new libc6
> > had already been installed. It's running a 2.2.5 kernel at the moment,
> > and runs dpkg < 1.8.0 with no problems. Sorry I can't provide an strace
> > right now, but I forgot to mail it to myself from work; if nobody else
> > has seen this already then I'll file a proper bug report on Monday.
> > 
> > Did somebody do something involving non-blocking file descriptors in
> > 1.8.1?
> 
> I've been running 1.8(and other versions of dpkg, even before an actual
> 1.8 deb was made) for weeks now.  I haven't seen issues like this.  Can you
> give any more details, so that I can try to track it down?

[trimmed to debian-dpkg]

Firstly, some more data points. I tried 1.8.1 and 1.8.1.1 with three
kernels: 2.2.5-15 (one of Red Hat's patched kernels, which I was using
at work until recently for various annoying historical reasons), 2.2.16;
and 2.4.0. The problem appeared with 2.2.5-15, but not with either of
the other two. I suppose this could well be just a stupid kernel bug;
feel free to ignore it if that's what you think, as it's not one that
Debian ships. Though, as I say, dpkg versions < 1.8.0 were quite happy.

If you're still interested, here's some details of dpkg 1.8.1.1 trying
to install itself. It generated the following terminal output:

(Reading database ... 60677 files and directories currently installed.)
Preparing to replace dpkg 1.8.1.1 (using .../colinw/dpkg_1.8.1.1_i386.deb) ...
Unpacking replacement dpkg ...
dpkg: error processing /home/colinw/dpkg_1.8.1.1_i386.deb (--install):
 failed in buffer_read(fd): backend dpkg-deb during `./usr/share/doc/dpkg/THANKS.gz': Resource temporarily unavailable
Segmentation fault

Attached is the end of an strace (gzipped), from the last execve() of
dpkg-deb on. The full strace is 400K, and I don't think there's any
point posting the whole thing, quite apart from the fact that it would
probably seriously annoy people; it's at
<URL:http://www.chiark.greenend.org.uk/~cjwatson/dpkg-strace> if you
need it.

-- 
Colin Watson                                     [cjw44@flatline.org.uk]

Attachment: dpkg-short-strace.gz
Description: Binary data


Reply to: