summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThierry Vignaud <tv@mageia.org>2012-03-05 19:01:43 +0000
committerThierry Vignaud <tv@mageia.org>2012-03-05 19:01:43 +0000
commit0834d50e0b3dc375687362ff5d6f10753d2ffc10 (patch)
tree00e2f0d62e171bbd49c8720ef806dda3af7dee9c
parent448206fda38d36732781f755b60613fa2d0b399f (diff)
downloadurpmi-0834d50e0b3dc375687362ff5d6f10753d2ffc10.tar
urpmi-0834d50e0b3dc375687362ff5d6f10753d2ffc10.tar.gz
urpmi-0834d50e0b3dc375687362ff5d6f10753d2ffc10.tar.bz2
urpmi-0834d50e0b3dc375687362ff5d6f10753d2ffc10.tar.xz
urpmi-0834d50e0b3dc375687362ff5d6f10753d2ffc10.zip
(install) fix circular reference that defeats perl's GC
else we keep the RPM DB open several times until rpm fails: created transaction for installing on / (remove=0, install=0, upgrade=8) error: rpmdb: Lock table is out of available locker entries error: cannot open Basenames index using db4 - Cannot allocate memory (12) error: rpmdb: Lock table is out of available locker entries error: cannot open Group index using db4 - Cannot allocate memory (12) error: rpmdb: Lock table is out of available locker entries error: cannot open Requirename index using db4 - Cannot allocate memory (12) error: rpmdb: Lock table is out of available locker entries error: cannot open Triggername index using db4 - Cannot allocate memory (12) error: rpmdb: Lock table is out of available locker entries (...) regression introduced in commit r2946 on 2012-02-14 (was: '(install) --test: do not display "More information on package"')
-rw-r--r--NEWS1
-rw-r--r--urpm/install.pm3
2 files changed, 3 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index 50b0dba9..dfbc36de 100644
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,5 @@
- explicitely close the RPM DB after each transaction
+- fix circular dependency that defeats perl's GC
- warn if --allow-force, --allow-nodeps, --force or --keep is in use (mga#3127)
Version 6.45 - 27 February 2012
diff --git a/urpm/install.pm b/urpm/install.pm
index fc30b847..3dd97302 100644
--- a/urpm/install.pm
+++ b/urpm/install.pm
@@ -222,6 +222,7 @@ sub install {
$urpm->{readmes} = {};
my $index;
my $fh;
+ my $is_test = $options{test}; # fix circular reference
#- assume default value for some parameter.
$options{delta} ||= 1000;
@@ -239,7 +240,7 @@ sub install {
my ($urpm, undef, $pkgid) = @_;
return unless defined $pkgid;
$callback_close_helper and $callback_close_helper->($db, @_);
- get_README_files($urpm, $trans, $urpm->{depslist}[$pkgid]) if !$options{test};
+ get_README_files($urpm, $trans, $urpm->{depslist}[$pkgid]) if !$is_test;
close $fh if defined $fh;
};
#- ensure perl does not create a circular reference below, otherwise all this won't be collected,