#12313: Fix yet another memory leak caused by caching of coercion data
--------------------------------------------------+-------------------------
       Reporter:  SimonKing                       |         Owner:              
                             
           Type:  defect                          |        Status:  
needs_review                             
       Priority:  major                           |     Milestone:  sage-5.3    
                             
      Component:  memleak                         |    Resolution:              
                             
       Keywords:  coercion weak dictionary        |   Work issues:              
                             
Report Upstream:  N/A                             |     Reviewers:  Simon King, 
Jean-Pierre Flori, John Perry
        Authors:  Simon King, Jean-Pierre Flori   |     Merged in:              
                             
   Dependencies:  #11521, #11599, #12969, #12215  |      Stopgaps:              
                             
--------------------------------------------------+-------------------------

Comment (by jpflori):

 Here is the seemingly relevant part of the Valgrind output:
 {{{
 ==14712== Invalid free() / delete / delete[] / realloc()
 ==14712==    at 0x4C2B0BF: operator delete(void*)
 (vg_replace_malloc.c:477)
 ==14712==    by 0x2C653D62:
 __pyx_tp_dealloc_4sage_5rings_10polynomial_5pbori_ReductionStrategy(_object*)
 (ccobject.h:77)
 ==14712==    by 0x2C5E9B52:
 __pyx_tp_clear_4sage_5rings_10polynomial_5pbori_GroebnerStrategy(_object*)
 (pbori.cpp:52486)
 ==14712==    by 0x4F5AF96: collect (gcmodule.c:769)
 ==14712==    by 0x4F5B728: gc_collect (gcmodule.c:1067)
 ==14712==    by 0x4F21E44: PyEval_EvalFrameEx (ceval.c:4021)
 ==14712==    by 0x4F23A94: PyEval_EvalCodeEx (ceval.c:3253)
 ==14712==    by 0x4F21EBF: PyEval_EvalFrameEx (ceval.c:4117)
 ==14712==    by 0x4F23A94: PyEval_EvalCodeEx (ceval.c:3253)
 ==14712==    by 0x4F23BD1: PyEval_EvalCode (ceval.c:667)
 ==14712==    by 0x4F4633F: PyRun_FileExFlags (pythonrun.c:1353)
 ==14712==    by 0x4F46DDE: PyRun_SimpleFileExFlags (pythonrun.c:943)
 ==14712==    by 0x4F5A294: Py_Main (main.c:639)
 ==14712==    by 0x544A76C: (below main) (libc-start.c:226)
 ==14712==  Address 0x21352000 is 96 bytes inside a block of size 448
 alloc'd
 ==14712==    at 0x4C2C054: operator new(unsigned long)
 (vg_replace_malloc.c:295)
 ==14712==    by 0x2C6541D9:
 
__pyx_pw_4sage_5rings_10polynomial_5pbori_16GroebnerStrategy_1__init__(_object*,
 _object*, _object*) (pbori.cpp:39499)
 ==14712==    by 0x4EDB457: type_call (typeobject.c:737)
 ==14712==    by 0x4E7E7A2: PyObject_Call (abstract.c:2529)
 ==14712==    by 0x2C61104A:
 
__pyx_pf_4sage_5rings_10polynomial_5pbori_22BooleanPolynomialIdeal_4groebner_basis(_object*,
 _object*, _object*) [clone .isra.97] (pbori.cpp:31442)
 ==14712==    by 0x2C6116D6:
 
__pyx_pw_4sage_5rings_10polynomial_5pbori_22BooleanPolynomialIdeal_5groebner_basis(_object*,
 _object*, _object*) (pbori.cpp:31182)
 ==14712==    by 0x4E7E7A2: PyObject_Call (abstract.c:2529)
 ==14712==    by 0x4F20A6C: PyEval_EvalFrameEx (ceval.c:4239)
 ==14712==    by 0x4F23A94: PyEval_EvalCodeEx (ceval.c:3253)
 ==14712==    by 0x4F23BD1: PyEval_EvalCode (ceval.c:667)
 ==14712==    by 0x4F21BFE: PyEval_EvalFrameEx (ceval.c:4718)
 ==14712==    by 0x4F23A94: PyEval_EvalCodeEx (ceval.c:3253)
 ==14712==    by 0x4EA674B: function_call (funcobject.c:526)
 ==14712==    by 0x4E7E7A2: PyObject_Call (abstract.c:2529)
 ==14712==    by 0x4E8BF1E: instancemethod_call (classobject.c:2578)
 ==14712==    by 0x4E7E7A2: PyObject_Call (abstract.c:2529)
 ==14712==    by 0x4F20A6C: PyEval_EvalFrameEx (ceval.c:4239)
 ==14712==    by 0x4F23A94: PyEval_EvalCodeEx (ceval.c:3253)
 ==14712==    by 0x4F21EBF: PyEval_EvalFrameEx (ceval.c:4117)
 ==14712==    by 0x4F23A94: PyEval_EvalCodeEx (ceval.c:3253)
 ==14712==    by 0x4EA674B: function_call (funcobject.c:526)
 ==14712==    by 0x4E7E7A2: PyObject_Call (abstract.c:2529)
 ==14712==    by 0x4E8BF1E: instancemethod_call (classobject.c:2578)
 ==14712==    by 0x4E7E7A2: PyObject_Call (abstract.c:2529)
 ==14712==    by 0x4F20A6C: PyEval_EvalFrameEx (ceval.c:4239)
 ==14712==
 }}}

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/12313#comment:234>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sage-trac?hl=en.

Reply via email to