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