#12215: Memleak in UniqueRepresentation, @cached_method
---------------------------------------------+------------------------------
   Reporter:  vbraun                         |          Owner:  rlm             
                          
       Type:  defect                         |         Status:  needs_work      
                          
   Priority:  major                          |      Milestone:  sage-4.8        
                          
  Component:  memleak                        |       Keywords:  
UniqueRepresentation cached_method caching
Work_issues:  segfaults for elliptic curves  |       Upstream:  N/A             
                          
   Reviewer:                                 |         Author:  Simon King      
                          
     Merged:                                 |   Dependencies:  #11115 #11900   
                          
---------------------------------------------+------------------------------

Comment(by vbraun):

 Here is the stack:
 {{{
 Program terminated with signal 11, Segmentation fault.
 #0  cgetg (y=22, x=<optimized out>) at ../src/kernel/none/level1.h:114
 114     ../src/kernel/none/level1.h: No such file or directory.
         in ../src/kernel/none/level1.h
 Traceback (most recent call last):
   File "/usr/share/gdb/auto-load/usr/lib64/libstdc++.so.6.0.16-gdb.py",
 line 59, in <module>
     from libstdcxx.v6.printers import register_libstdcxx_printers
   File "/usr/lib64/../share/gcc-4.6.2/python/libstdcxx/v6/printers.py",
 line 19, in <module>
     import itertools
 ImportError: No module named itertools
 Missing separate debuginfos, use: debuginfo-install
 atlas-3.8.4-1.fc16.x86_64 expat-2.0.1-11.fc15.x86_64
 fontconfig-2.8.0-4.fc16.x86_64 keyutils-libs-1.5.2-1.fc16.x86_64
 krb5-libs-1.9.2-4.fc16.x86_64 libcom_err-1.41.14-2.fc15.x86_64
 libselinux-2.1.6-5.fc16.x86_64 ncurses-libs-5.9-2.20110716.fc16.x86_64
 openssl-1.0.0e-1.fc16.x86_64
 (gdb) bt
 #0  cgetg (y=22, x=<optimized out>) at ../src/kernel/none/level1.h:114
 #1  convi (x=0x288b2a8, l=0x7fff6a2f8a38) at ../src/kernel/gmp/mp.c:1288
 #2  0x00007f11fb1637ec in itostr_sign (x=<optimized out>, sx=1,
 len=0x7fff6a2f8b48) at ../src/language/es.c:500
 #3  0x00007f11fb167b4f in str_absint (x=0x288b2a8, S=0x7fff6a2f8cb0) at
 ../src/language/es.c:1778
 #4  bruti_intern (g=0x288b2a8, T=<optimized out>, S=0x7fff6a2f8cb0,
 addsign=1) at ../src/language/es.c:2557
 #5  0x00007f11fb168453 in bruti_intern (g=0x288b2d8, T=0x7f11fb4b27a0,
 S=0x7fff6a2f8cb0, addsign=<optimized out>)
     at ../src/language/es.c:2730
 #6  0x00007f11fb1679ae in GENtostr_fun (out=0x7f11fb16a7b0 <bruti>,
 T=0x7f11fb4b27a0, x=0x288b2d8)
     at ../src/language/es.c:1645
 #7  GENtostr (x=0x288b2d8) at ../src/language/es.c:1651
 #8  0x00007f11f5ae5c44 in gcmp_sage (y=0x583d1b8, x=<optimized out>) at
 sage/libs/pari/misc.h:60
 #9  __pyx_f_4sage_4libs_4pari_3gen_3gen__cmp_c_impl
 (__pyx_v_left=<optimized out>, __pyx_v_right=<optimized out>)
     at sage/libs/pari/gen.c:8513
 #10 0x00007f11f8663227 in
 __pyx_f_4sage_9structure_7element_7Element__richcmp_c_impl
 (__pyx_v_left=0x5780e10,
     __pyx_v_right=<optimized out>, __pyx_v_op=2) at
 sage/structure/element.c:7775
 #11 0x00007f11f86875ec in
 __pyx_f_4sage_9structure_7element_7Element__richcmp
 (__pyx_v_left=0x5780e10,
     __pyx_v_right=0x5863f70, __pyx_v_op=2) at
 sage/structure/element.c:7498
 #12 0x00007f11f5ae045b in
 __pyx_pf_4sage_4libs_4pari_3gen_3gen_44__richcmp__
 (__pyx_v_left=<optimized out>,
     __pyx_v_right=<optimized out>, __pyx_v_op=<optimized out>) at
 sage/libs/pari/gen.c:8475
 #13 0x00007f1208b32e6a in try_rich_compare (v=0x5780e10, w=0x5863f70,
 op=2) at Objects/object.c:619
 #14 0x00007f1208b3518d in try_rich_compare_bool (op=<optimized out>,
 w=<optimized out>, v=<optimized out>)
     at Objects/object.c:647
 #15 try_rich_to_3way_compare (w=0x5863f70, v=0x5780e10) at
 Objects/object.c:681
 #16 do_cmp (w=0x5863f70, v=0x5780e10) at Objects/object.c:834
 #17 PyObject_Compare (v=0x5780e10, w=0x5863f70) at Objects/object.c:863
 #18 0x00007f1208af5ae5 in PyObject_Cmp (o1=<optimized out>, o2=<optimized
 out>, result=0x7fff6a2f8f0c)
     at Objects/abstract.c:41
 #19 0x00007f1208b879d4 in builtin_cmp (self=<optimized out>,
 args=<optimized out>) at Python/bltinmodule.c:422
 #20 0x00007f1208b917fd in call_function (oparg=<optimized out>,
 pp_stack=0x7fff6a2f9000) at Python/ceval.c:3706
 #21 PyEval_EvalFrameEx (f=<optimized out>, throwflag=<optimized out>) at
 Python/ceval.c:2389
 #22 0x00007f1208b934d9 in PyEval_EvalCodeEx (co=<optimized out>,
 globals=<optimized out>, locals=<optimized out>,
     args=<optimized out>, argcount=2, kws=0x0, kwcount=0, defs=0x0,
 defcount=0, closure=0x0)
     at Python/ceval.c:2968
 #23 0x00007f1208b1f7f6 in function_call (func=0x1fec9b0, arg=0x5864518,
 kw=0x0) at Objects/funcobject.c:524
 #24 0x00007f1208af97a3 in PyObject_Call (func=0x1fec9b0, arg=<optimized
 out>, kw=<optimized out>)
     at Objects/abstract.c:2492
 #25 0x00007f1208b0667f in instancemethod_call (func=0x1fec9b0,
 arg=0x5864518, kw=0x0)
     at Objects/classobject.c:2579
 #26 0x00007f1208af97a3 in PyObject_Call (func=0x579d0f0, arg=<optimized
 out>, kw=<optimized out>)
     at Objects/abstract.c:2492
 #27 0x00007f1208b545c6 in half_compare (self=<optimized out>,
 other=<optimized out>) at Objects/typeobject.c:5253
 #28 0x00007f1208b547a5 in _PyObject_SlotCompare (self=0x5713af0,
 other=0x5866af0) at Objects/typeobject.c:5278
 #29 0x00007f1208b35260 in do_cmp (w=0x5866af0, v=0x5713af0) at
 Objects/object.c:817
 #30 PyObject_Compare (v=0x5713af0, w=0x5866af0) at Objects/object.c:863
 #31 0x00007f1208af5ae5 in PyObject_Cmp (o1=<optimized out>, o2=<optimized
 out>, result=0x7fff6a2f955c)
     at Objects/abstract.c:41
 #32 0x00007f1208b879d4 in builtin_cmp (self=<optimized out>,
 args=<optimized out>) at Python/bltinmodule.c:422
 #33 0x00007f1208af97a3 in PyObject_Call (func=0x7f120903e2d8,
 arg=<optimized out>, kw=<optimized out>)
     at Objects/abstract.c:2492
 #34 0x00007f11e5b541fc in
 __pyx_pf_4sage_5rings_13residue_field_20ResidueField_generic_8__cmp__ (
     __pyx_self=<optimized out>, __pyx_args=<optimized out>,
 __pyx_kwds=<optimized out>)
     at sage/rings/residue_field.c:7317
 #35 0x00007f1208af97a3 in PyObject_Call (func=0x22e7200, arg=<optimized
 out>, kw=<optimized out>)
     at Objects/abstract.c:2492
 ---Type <return> to continue, or q <return> to quit---
 #36 0x00007f1208b0667f in instancemethod_call (func=0x22e7200,
 arg=0x586d320, kw=0x0)
     at Objects/classobject.c:2579
 #37 0x00007f1208af97a3 in PyObject_Call (func=0x4e32aa0, arg=<optimized
 out>, kw=<optimized out>)
     at Objects/abstract.c:2492
 #38 0x00007f1208b545c6 in half_compare (self=<optimized out>,
 other=<optimized out>) at Objects/typeobject.c:5253
 #39 0x00007f1208b547a5 in _PyObject_SlotCompare (self=0x57f2410,
 other=0x5906e90) at Objects/typeobject.c:5278
 #40 0x00007f1208b35260 in do_cmp (w=0x5906e90, v=0x57f2410) at
 Objects/object.c:817
 #41 PyObject_Compare (v=0x57f2410, w=0x5906e90) at Objects/object.c:863
 #42 0x00007f1208af5ae5 in PyObject_Cmp (o1=<optimized out>, o2=<optimized
 out>, result=0x7fff6a2f99bc)
     at Objects/abstract.c:41
 #43 0x00007f1208b879d4 in builtin_cmp (self=<optimized out>,
 args=<optimized out>) at Python/bltinmodule.c:422
 #44 0x00007f1208b917fd in call_function (oparg=<optimized out>,
 pp_stack=0x7fff6a2f9ab0) at Python/ceval.c:3706
 #45 PyEval_EvalFrameEx (f=<optimized out>, throwflag=<optimized out>) at
 Python/ceval.c:2389
 #46 0x00007f1208b92593 in fast_function (nk=<optimized out>, na=2,
 n=<optimized out>, pp_stack=0x7fff6a2f9c10,
     func=0x3b0a410) at Python/ceval.c:3792
 #47 call_function (oparg=<optimized out>, pp_stack=0x7fff6a2f9c10) at
 Python/ceval.c:3727
 #48 PyEval_EvalFrameEx (f=<optimized out>, throwflag=<optimized out>) at
 Python/ceval.c:2389
 #49 0x00007f1208b934d9 in PyEval_EvalCodeEx (co=<optimized out>,
 globals=<optimized out>, locals=<optimized out>,
     args=<optimized out>, argcount=2, kws=0x0, kwcount=0, defs=0x0,
 defcount=0, closure=0x0)
     at Python/ceval.c:2968
 #50 0x00007f1208b1f7f6 in function_call (func=0x3af28c0, arg=0x588d7a0,
 kw=0x0) at Objects/funcobject.c:524
 #51 0x00007f1208af97a3 in PyObject_Call (func=0x3af28c0, arg=<optimized
 out>, kw=<optimized out>)
     at Objects/abstract.c:2492
 #52 0x00007f1208b0667f in instancemethod_call (func=0x3af28c0,
 arg=0x588d7a0, kw=0x0)
     at Objects/classobject.c:2579
 #53 0x00007f1208af97a3 in PyObject_Call (func=0x4e29be0, arg=<optimized
 out>, kw=<optimized out>)
     at Objects/abstract.c:2492
 #54 0x00007f1208b545c6 in half_compare (self=<optimized out>,
 other=<optimized out>) at Objects/typeobject.c:5253
 #55 0x00007f1208b547a5 in _PyObject_SlotCompare (self=0x579f908,
 other=0x58c5528) at Objects/typeobject.c:5278
 #56 0x00007f1208b34dad in PyObject_RichCompare (v=0x579f908, w=0x58c5528,
 op=2) at Objects/object.c:967
 #57 0x00007f1208b3505f in PyObject_RichCompareBool (v=<optimized out>,
 w=<optimized out>, op=<optimized out>)
     at Objects/object.c:1001
 #58 0x00007f1208b49264 in tuplerichcompare (op=2, w=0x5898a70,
 v=0x578bf38) at Objects/tupleobject.c:546
 #59 tuplerichcompare (v=0x578bf38, w=0x5898a70, op=2) at
 Objects/tupleobject.c:517
 #60 0x00007f1208b34d71 in PyObject_RichCompare (v=0x578bf38, w=0x5898a70,
 op=2) at Objects/object.c:958
 #61 0x00007f1208b3505f in PyObject_RichCompareBool (v=<optimized out>,
 w=<optimized out>, op=<optimized out>)
     at Objects/object.c:1001
 #62 0x00007f1208b49264 in tuplerichcompare (op=2, w=0x5898ab8,
 v=0x579c368) at Objects/tupleobject.c:546
 #63 tuplerichcompare (v=0x579c368, w=0x5898ab8, op=2) at
 Objects/tupleobject.c:517
 #64 0x00007f1208b34d71 in PyObject_RichCompare (v=0x579c368, w=0x5898ab8,
 op=2) at Objects/object.c:958
 #65 0x00007f1208b3505f in PyObject_RichCompareBool (v=<optimized out>,
 w=<optimized out>, op=<optimized out>)
     at Objects/object.c:1001
 #66 0x00007f1208b2f305 in lookdict (mp=0x14c51d0, key=<optimized out>,
 hash=-1399715627429533172)
     at Objects/dictobject.c:351
 #67 0x00007f1208b3087c in PyDict_DelItem (op=0x14c51d0, key=0x5898ab8) at
 Objects/dictobject.c:742
 #68 0x00007f1208b8e924 in PyEval_EvalFrameEx (f=<optimized out>,
 throwflag=<optimized out>) at Python/ceval.c:1555
 #69 0x00007f1208b934d9 in PyEval_EvalCodeEx (co=<optimized out>,
 globals=<optimized out>, locals=<optimized out>,
     args=<optimized out>, argcount=1, kws=0x0, kwcount=0, defs=0x1458be8,
 defcount=1, closure=0x0)
     at Python/ceval.c:2968
 #70 0x00007f1208b1f7f6 in function_call (func=0x1464320,
 arg=0x7f1208fdf510, kw=0x0) at Objects/funcobject.c:524
 #71 0x00007f1208af97a3 in PyObject_Call (func=0x1464320, arg=<optimized
 out>, kw=<optimized out>)
     at Objects/abstract.c:2492
 #72 0x00007f1208afa1e0 in PyObject_CallFunctionObjArgs
 (callable=0x1464320) at Objects/abstract.c:2723
 #73 0x00007f1208bc4146 in handle_weakrefs (old=0x7f1208e52b40,
 unreachable=0x7fff6a2fa700)
 ---Type <return> to continue, or q <return> to quit---
     at Modules/gcmodule.c:607
 #74 collect (generation=2) at Modules/gcmodule.c:859
 #75 0x00007f1208bc4b04 in PyGC_Collect () at Modules/gcmodule.c:1292
 #76 0x00007f1208bb6d73 in Py_Finalize () at Python/pythonrun.c:424
 #77 0x00007f1208bb5c38 in Py_Exit (sts=0) at Python/pythonrun.c:1714
 #78 0x00007f1208bb5d2f in handle_system_exit () at Python/pythonrun.c:1116
 #79 0x00007f1208bb5fc5 in handle_system_exit () at Python/pythonrun.c:1078
 #80 PyErr_PrintEx (set_sys_last_vars=1) at Python/pythonrun.c:1126
 #81 0x00007f1208bb643e in PyRun_SimpleFileExFlags (fp=<optimized out>,
 filename=<optimized out>, closeit=1,
     flags=0x7fff6a2fa9e0) at Python/pythonrun.c:935
 #82 0x00007f1208bc35a3 in Py_Main (argc=<optimized out>, argv=<optimized
 out>) at Modules/main.c:599
 #83 0x00007f1207e7569d in __libc_start_main (main=0x400620 <main>, argc=3,
 ubp_av=0x7fff6a2fab08,
     init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>,
 stack_end=0x7fff6a2faaf8)
     at libc-start.c:226
 #84 0x0000000000400651 in _start ()
 }}}
 For the record, I enabled coredumps and then ran `gdb --core core.4522
 local/bin/python`

-- 
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/12215#comment:22>
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