From: dklawren Date: Wed, 29 Apr 2020 13:31:36 +0000 (-0400) Subject: Bug 1633848 - Fix possible areas where memory leak can occur in the PhabBugz daemon... X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ed1180450b6b5495a95bb1199963e679e5123ec6;p=thirdparty%2Fbugzilla.git Bug 1633848 - Fix possible areas where memory leak can occur in the PhabBugz daemon code --- diff --git a/extensions/PhabBugz/lib/Revision.pm b/extensions/PhabBugz/lib/Revision.pm index e3924eefb..e2a3e5848 100644 --- a/extensions/PhabBugz/lib/Revision.pm +++ b/extensions/PhabBugz/lib/Revision.pm @@ -11,7 +11,7 @@ use 5.10.1; use Moo; use Mojo::JSON qw(true); -use Scalar::Util qw(blessed); +use Scalar::Util qw(blessed weaken); use Types::Standard -all; use Type::Utils; @@ -270,7 +270,9 @@ sub update { sub _build_bug { my ($self) = @_; - return $self->{bug} ||= Bugzilla::Bug->new({id => $self->bug_id, cache => 1}); + my $bug = $self->{bug} ||= Bugzilla::Bug->new({id => $self->bug_id, cache => 1}); + weaken($self->{bug}); + return $bug; } sub _build_author { diff --git a/extensions/PhabBugz/lib/User.pm b/extensions/PhabBugz/lib/User.pm index 2bc2ed7dc..3e9037ca0 100644 --- a/extensions/PhabBugz/lib/User.pm +++ b/extensions/PhabBugz/lib/User.pm @@ -15,6 +15,7 @@ use Bugzilla::Types qw(:types); use Bugzilla::Extension::PhabBugz::Util qw(request); use List::Util qw(first); +use Scalar::Util qw(weaken); use Types::Standard -all; use Type::Utils; use Type::Params qw(compile); @@ -158,7 +159,9 @@ sub match { sub _build_bugzilla_user { my ($self) = @_; return undef unless $self->bugzilla_id; - return Bugzilla::User->new({id => $self->bugzilla_id, cache => 1}); + my $user = $self->{user} ||= Bugzilla::User->new({id => $self->bugzilla_id, cache => 1}); + weaken($self->{user}); + return $user; } sub get_phab_bugzilla_ids {