diff options
author | Thierry Vignaud <tv@mageia.org> | 2012-03-05 19:01:43 +0000 |
---|---|---|
committer | Thierry Vignaud <tv@mageia.org> | 2012-03-05 19:01:43 +0000 |
commit | 0834d50e0b3dc375687362ff5d6f10753d2ffc10 (patch) | |
tree | 00e2f0d62e171bbd49c8720ef806dda3af7dee9c | |
parent | 448206fda38d36732781f755b60613fa2d0b399f (diff) | |
download | urpmi-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-- | NEWS | 1 | ||||
-rw-r--r-- | urpm/install.pm | 3 |
2 files changed, 3 insertions, 1 deletions
@@ -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, |