changeset 21698:99ba1d082287 stable

localrepo: prevent leak of transaction object (issue4258) The onclose() closure added in cd443c7589cc held a regular reference to the transaction object. This was causing the transaction to not gc and a leak to occur. The closure now holds a reference to the weakref instance and the leak goes away.
author Gregory Szorc <gregory.szorc@gmail.com>
date Wed, 21 May 2014 18:02:35 -0700
parents 3cb2da25b171
children 269c80ee5b3c
files mercurial/localrepo.py
diffstat 1 files changed, 1 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/localrepo.py	Thu May 22 01:49:12 2014 -0700
+++ b/mercurial/localrepo.py	Wed May 21 18:02:35 2014 -0700
@@ -858,7 +858,7 @@
                 _("abandoned transaction found - run hg recover"))
 
         def onclose():
-            self.store.write(tr)
+            self.store.write(self._transref())
 
         self._writejournal(desc)
         renames = [(vfs, x, undoname(x)) for vfs, x in self._journalfiles()]