id summary reporter owner description type status priority milestone component resolution keywords cc merged author reviewer upstream work_issues branch commit dependencies stopgaps
715 Parents probably not reclaimed due to too much caching robertwb somebody "Here is a small example illustrating the issue.
The memory footprint of the following piece of code grows indefinitely.
{{{
sage: K = GF(1<<55,'t')
sage: a = K.random_element()
sage: while 1:
....: E = EllipticCurve(j=a); P = E.random_point(); 2*P; del E, P;
}}}
E and P get deleted, but when 2*P is computed, the action of integers on A, the abelian group of rational points of the ellitpic curve, gets cached in the corecion model.
A key-value pair is left in coercion_model._action_maps dict:
(ZZ,A,*) : IntegerMulAction
Moreover there is at least also references to A in the IntegerMulAction and one in ZZ._action_hash.
So weak refs should be used in all these places if it does not slow things too much.
'''To be merged with #11521'''. Apply:
* [attachment:trac_715_combined.patch]
* [attachment:trac_715_local_refcache.patch]
and '''then''' the tickets from #11521." defect needs_review major sage-pending coercion weak cache coercion Cernay2012 jpflori zimmerma vbraun robertwb nbruin Simon King, Jean-Pierre Flori Jean-Pierre Flori, Simon King N/A #9138, #11900, #11599, to be merged with #11521