Your message dated Sat, 24 Nov 2007 05:47:02 +0000
with message-id <[EMAIL PROTECTED]>
and subject line Bug#452577: fixed in dpkg 1.14.11
has caused the attached Bug report to be marked as done.
This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.
(NB: If you are a system administrator and have no idea what I am
talking about this indicates a serious mail system misconfiguration
somewhere. Please contact me immediately.)
Debian bug tracking system administrator
(administrator, Debian Bugs database)
--- Begin Message ---
Package: dpkg-dev
Version: 1.14.8
Severity: normal
Tags: patch
dpkg-shlibdeps's latest incarnation (as of 1.14.8 and its experimental
predecessors) introduces a performance regression: it runs dpkg
--search once per executable or library being examined, rather than
caching its results any fashion. As each call requires scanning every
package's contents AFAICT, the resulting procedure can take a LONG
time on systems with many packages installed. (It would be great if
dpkg-query could itself run faster, but that's a separate issue.)
I previously reported the same high-level problem as #421290, but I'm
opening a new bug because the underlying code base is so different.
As before, I have put together a patch that I believe DTRT. This
time, I've even tested it against complicated cases such as libkcal2b,
to avoid a repeat of #425641, for which I do sincerely apologize. (At
any rate, the rewrite at least resulted in much clearer and more
readily patched logic.)
Could you please review and apply the attached patch (against 1.14.10)
when you get a chance?
Thanks!
-- System Information:
Debian Release: lenny/sid
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'testing'), (500, 'stable')
Architecture: i386 (i686)
Kernel: Linux 2.6.22
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
--- dpkg-shlibdeps.1.14.10 2007-11-23 13:47:46.000000000 -0500
+++ dpkg-shlibdeps.optimized 2007-11-23 13:53:20.000000000 -0500
@@ -483,9 +483,22 @@
return undef;
}
+my %cached_pkgmatch = ();
+
sub find_packages {
- my @files = (@_);
+ my @files;
my $pkgmatch = {};
+
+ foreach (@_) {
+ if (exists $cached_pkgmatch{$_}) {
+ $pkgmatch->{$_} = $cached_pkgmatch{$_};
+ } else {
+ push @files, $_;
+ $cached_pkgmatch{$_} = [""]; # placeholder to cache misses too.
+ }
+ }
+ return $pkgmatch unless @files;
+
my $pid = open(DPKG, "-|");
syserr(_g("cannot fork for dpkg --search")) unless defined($pid);
if (!$pid) {
@@ -503,7 +516,7 @@
print(STDERR " $_\n")
|| syserr(_g("write diversion info to stderr"));
} elsif (m/^([^:]+): (\S+)$/) {
- $pkgmatch->{$2} = [ split(/, /, $1) ];
+ $cached_pkgmatch{$2} = $pkgmatch->{$2} = [ split(/, /, $1) ];
} else {
warning(_g("unknown output from dpkg --search: '%s'"), $_);
}
--- End Message ---
--- Begin Message ---
Source: dpkg
Source-Version: 1.14.11
We believe that the bug you reported is fixed in the latest version of
dpkg, which is due to be installed in the Debian FTP archive:
dpkg-dev_1.14.11_all.deb
to pool/main/d/dpkg/dpkg-dev_1.14.11_all.deb
dpkg_1.14.11.dsc
to pool/main/d/dpkg/dpkg_1.14.11.dsc
dpkg_1.14.11.tar.gz
to pool/main/d/dpkg/dpkg_1.14.11.tar.gz
dpkg_1.14.11_i386.deb
to pool/main/d/dpkg/dpkg_1.14.11_i386.deb
dselect_1.14.11_i386.deb
to pool/main/d/dpkg/dselect_1.14.11_i386.deb
A summary of the changes between this version and the previous one is
attached.
Thank you for reporting the bug, which will now be closed. If you
have further comments please address them to [EMAIL PROTECTED],
and the maintainer will reopen the bug report if appropriate.
Debian distribution maintenance software
pp.
Guillem Jover <[EMAIL PROTECTED]> (supplier of updated dpkg package)
(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [EMAIL PROTECTED])
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Format: 1.7
Date: Sat, 24 Nov 2007 07:19:02 +0200
Source: dpkg
Binary: dpkg dselect dpkg-dev
Architecture: source i386 all
Version: 1.14.11
Distribution: unstable
Urgency: low
Maintainer: Dpkg Developers <[EMAIL PROTECTED]>
Changed-By: Guillem Jover <[EMAIL PROTECTED]>
Description:
dpkg - package maintenance system for Debian
dpkg-dev - package building tools for Debian
dselect - user tool to manage Debian packages
Closes: 452318 452577 452621
Changes:
dpkg (1.14.11) unstable; urgency=low
.
[ Raphael Hertzog ]
* dpkg-shlibdeps now ignores the lack of dependency information in some
specific cases (instead of failing):
- when the library is in the same package than the binary analyzed
- when the library is not versionned and can't have a shlibs file
* dpkg-shlibdeps now only displays 10 warnings about symbols not found for
each binary and a count of skipped warnings. Closes: #452318
* dpkg-shlibdeps: optimize "dpkg -S" lookups by caching results, patch
from Aaron M. Ucko <[EMAIL PROTECTED]>. Closes: #452577
.
[ Guillem Jover ]
* Fix dpkg-scanpackages to properly support an optional override file.
Closes: #452621
Files:
7370f9e5232f7ce4ff6c72d30d89eeff 997 admin required dpkg_1.14.11.dsc
15de657f6e7c7e0d91e32d0fa2e48c9d 6279288 admin required dpkg_1.14.11.tar.gz
7051160566f63bb923789baf2b56da77 2148512 admin required dpkg_1.14.11_i386.deb
b21e6b77ee111ad94d78f607cf8ec319 511596 admin required dselect_1.14.11_i386.deb
a29c6e2fa9323e0f4e9b00a92acf533f 318380 utils optional dpkg-dev_1.14.11_all.deb
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQFHR7gmuW9ciZ2SjJsRApWEAKD0cwIM2eiokw1ETyUdug69Gx0kPACg9wYm
QEV/PLppQbNFhOQio/XLtZU=
=hR2s
-----END PGP SIGNATURE-----
--- End Message ---