#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.