New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Possible memory leaks reported by valgrind #2354
Comments
Blindly running valgrind on python is not informative. See, for example, http://www.j-david.net/2012/07/python-running-valgrind-on-a-c-extension.html. |
No, I did that all. I did not paste here lots of other matches which are either purely python-specific or are still false positivies (although I used the suppression). Shall I post the full version instead? ;-) |
From the FAQ: Given that we are not aware of any demonstrated leaks, my suspicion is that this is a case of "unusual things with pointers". @mdboom can provide more insight. |
I will try to convince you by these my reports elsewhere, which is why I reported just these few and that late in the process of testing. I code only in python, so anything happens to python crashing is either caused by some of numpy/matplotlib/gcc/libc/python or completely other program running and going wild. Provided python developers say they use valgrind regularly and hence that is why they provide the valgrind.supp file ... and provided that these stack traces show matplotlib on the second line from the top ... I think these are matplolib issues. http://bugs.python.org/issue18843 |
We need a few things:
Looking only at the first entry, I'm not convinced this is a bona fide leak. The RendererAgg object is long-lived -- we generally make one of them and keep it around for the lifetime of the process. When Python ends, it may not actually call its destructor (and indeed makes no guarantees that it would). But it only becomes a leak if we get a growing number of these over time, which hasn't been demonstrated. |
I tried to get something liek thsi with some lib/mpl_examples/pylab_examples/ but failed so far. So, from the top-secret ;-) application triggering that I can give at least: ==13517== 3,763,200 bytes in 1 blocks are possibly lost in loss record 1,913 of 1,913 ==13517== 65,536 bytes in 1 blocks are possibly lost in loss record 1,817 of 1,913 ==13517== 22,496 bytes in 1 blocks are possibly lost in loss record 1,793 of 1,913 ==13517== 17,968 bytes in 1 blocks are possibly lost in loss record 1,786 of 1,913 ==13517== 13,568 bytes in 1 blocks are possibly lost in loss record 1,778 of 1,913 ==13517== 6,856 bytes in 1 blocks are possibly lost in loss record 1,735 of 1,913 ==13517== 2,048 bytes in 1 blocks are possibly lost in loss record 1,631 of 1,913 ==13517== 1,123 bytes in 1 blocks are possibly lost in loss record 1,560 of 1,913 ==13517== 48 bytes in 1 blocks are possibly lost in loss record 789 of 1,913 That's all I could do. Either it helps, or not. |
Sorry, I can't help you if you aren't willing to share what is reproducing the problem. It doesn't have to be exactly your code if you don't want to share it, but we do need a simple, self-contained example. Otherwise, this is just guesswork. You may be interested in reading this: http://sscce.org/ |
It is not a question of will but of time. I spent 2 days on the memory issues and not have to recompile back to normal state (--without-pydebug). Maybe later. |
So I am still stuck with memory corruption issues and was sent by python devs back to you with this stracktrace. It will not help with my issues but you may want to know about that: ==17489== 40 bytes in 1 blocks are definitely lost in loss record 718 of 5,487 Initially it appeared that happens if I recompile python to provide debug ABI (which in turn means one must recompile all python-based apps) and import not-yet-recompiled module. In this case it was matplotlib which failed on import. But later I got this again and there was no import error. No, no testcase, at least yet. |
Actually, based on this, the errors are with NumPy, not matplotlib. None of On Fri, Aug 30, 2013 at 3:55 PM, mmokrejs notifications@github.com wrote:
|
Besides, that is very unlikely a real memory leak. It happens inside the |
While chasing for places where an unknown application overwrites some python-interpreter-owned regions (leading to Segmentation Faults or Fatal Python Interpreter errors) I ran valgring on my application (well, used cython to convert it to C and then used "gcc -ggdb" to get the binary with full debug). It between others uses matplotlib-1.2.1. I would be happy to re-test a patch for 1.2.1 (I have issues when compiling/installing 1.3.0 so I won't go that way at the moment).
==5435== 3,763,200 bytes in 1 blocks are possibly lost in loss record 1,915 of 1,915
==5435== at 0x4C2B8F7: operator new[](unsigned long) (vg_replace_malloc.c:363)
==5435== by 0x1146DD20: RendererAgg::RendererAgg(unsigned int, unsigned int, double, int) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x1147B801: _backend_agg_module::new_renderer(Py::Tuple const&, Py::Dict const&) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x1147BF39: Py::ExtensionModule<_backend_agg_module>::invoke_method_keyword(void*, Py::Tuple const&, Py::Dict const&) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x1146342D: method_keyword_call_handler (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x4EEB94F: PyCFunction_Call (methodobject.c:85)
==5435== by 0x4F928EF: do_call (ceval.c:4236)
==5435== by 0x4F91C44: call_function (ceval.c:4044)
==5435== by 0x4F8C52B: PyEval_EvalFrameEx (ceval.c:2666)
==5435== by 0x4F8EF61: PyEval_EvalCodeEx (ceval.c:3253)
==5435== by 0x4EC7925: function_call (funcobject.c:526)
==5435== by 0x4E868A3: PyObject_Call (abstract.c:2529)
==5435== 1,123 bytes in 1 blocks are possibly lost in loss record 1,559 of 1,915
==5435== at 0x4C2B8F7: operator new[](unsigned long) (vg_replace_malloc.c:363)
==5435== by 0x1148E586: void agg::render_scanlinesagg::rasterizer_scanline_aa<agg::rasterizer_sl_clip<agg::ras_conv_dbl >, agg::scanline_p8, agg::renderer_scanline_bin_solid<agg::renderer_base<agg::pixfmt_alpha_blend_rgba<agg::blender_rgba<agg::rgba8, agg::order_rgba>, agg::row_accessor, unsigned int> > > >(agg::rasterizer_scanline_aaagg::rasterizer_sl_clip<agg::ras_conv_dbl >&, agg::scanline_p8&, agg::renderer_scanline_bin_solid<agg::renderer_base<agg::pixfmt_alpha_blend_rgba<agg::blender_rgba<agg::rgba8, agg::order_rgba>, agg::row_accessor, unsigned int> > >&) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x1149232E: void RendererAgg::_draw_path<agg::conv_curve<PathSimplifier<PathSnapper<PathClipper<PathNanRemover<agg::conv_transform<PathIterator, agg::trans_affine> > > > >, agg::curve3, agg::curve4> >(agg::conv_curve<PathSimplifier<PathSnapper<PathClipper<PathNanRemover<agg::conv_transform<PathIterator, agg::trans_affine> > > > >, agg::curve3, agg::curve4>&, bool, std::pair<bool, agg::rgba> const&, GCAgg const&) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x11474852: RendererAgg::draw_path(Py::Tuple const&) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x1147CE78: Py::PythonExtension::method_varargs_call_handler(object, object) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x4EEB935: PyCFunction_Call (methodobject.c:81)
==5435== by 0x4F91A27: call_function (ceval.c:4021)
==5435== by 0x4F8C52B: PyEval_EvalFrameEx (ceval.c:2666)
==5435== by 0x4F8EF61: PyEval_EvalCodeEx (ceval.c:3253)
==5435== by 0x4F9206D: fast_function (ceval.c:4117)
==5435== by 0x4F91C28: call_function (ceval.c:4042)
==5435== by 0x4F8C52B: PyEval_EvalFrameEx (ceval.c:2666)
==5435== 65,536 bytes in 1 blocks are possibly lost in loss record 1,817 of 1,915
==5435== at 0x4C2B8F7: operator new[](unsigned long) (vg_replace_malloc.c:363)
==5435== by 0x1148792E: agg::rasterizer_cells_aaagg::cell_aa::allocate_block() (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x1148CD48: agg::rasterizer_cells_aaagg::cell_aa::line(int, int, int, int) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x1148D5C0: void agg::rasterizer_sl_clipagg::ras_conv_dbl::line_toagg::rasterizer_cells_aa<agg::cell_aa >(agg::rasterizer_cells_aaagg::cell_aa&, double, double) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x1148DB43: agg::rasterizer_scanline_aaagg::rasterizer_sl_clip<agg::ras_conv_dbl >::add_vertex(double, double, unsigned int) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x1148E1C5: void agg::rasterizer_scanline_aaagg::rasterizer_sl_clip<agg::ras_conv_dbl >::add_path<agg::conv_curve<PathSimplifier<PathSnapper<PathClipper<PathNanRemover<agg::conv_transform<PathIterator, agg::trans_affine> > > > >, agg::curve3, agg::curve4> >(agg::conv_curve<PathSimplifier<PathSnapper<PathClipper<PathNanRemover<agg::conv_transform<PathIterator, agg::trans_affine> > > > >, agg::curve3, agg::curve4>&, unsigned int) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x11490E5F: void RendererAgg::_draw_path<agg::conv_curve<PathSimplifier<PathSnapper<PathClipper<PathNanRemover<agg::conv_transform<PathIterator, agg::trans_affine> > > > >, agg::curve3, agg::curve4> >(agg::conv_curve<PathSimplifier<PathSnapper<PathClipper<PathNanRemover<agg::conv_transform<PathIterator, agg::trans_affine> > > > >, agg::curve3, agg::curve4>&, bool, std::pair<bool, agg::rgba> const&, GCAgg const&) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x11474852: RendererAgg::draw_path(Py::Tuple const&) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x1147CE78: Py::PythonExtension::method_varargs_call_handler(object, object) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x4EEB935: PyCFunction_Call (methodobject.c:81)
==5435== by 0x4F91A27: call_function (ceval.c:4021)
==5435== by 0x4F8C52B: PyEval_EvalFrameEx (ceval.c:2666)
==5435== 22,496 bytes in 1 blocks are possibly lost in loss record 1,794 of 1,915
==5435== at 0x4C2C067: operator new(unsigned long) (vg_replace_malloc.c:298)
==5435== by 0x1147B7E7: _backend_agg_module::new_renderer(Py::Tuple const&, Py::Dict const&) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x1147BF39: Py::ExtensionModule<_backend_agg_module>::invoke_method_keyword(void*, Py::Tuple const&, Py::Dict const&) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x1146342D: method_keyword_call_handler (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x4EEB94F: PyCFunction_Call (methodobject.c:85)
==5435== by 0x4F928EF: do_call (ceval.c:4236)
==5435== by 0x4F91C44: call_function (ceval.c:4044)
==5435== by 0x4F8C52B: PyEval_EvalFrameEx (ceval.c:2666)
==5435== by 0x4F8EF61: PyEval_EvalCodeEx (ceval.c:3253)
==5435== by 0x4EC7925: function_call (funcobject.c:526)
==5435== by 0x4E868A3: PyObject_Call (abstract.c:2529)
==5435== by 0x4EA2A8E: instancemethod_call (classobject.c:2602)
==5435== 17,968 bytes in 1 blocks are possibly lost in loss record 1,786 of 1,915
==5435== at 0x4C2B8F7: operator new[](unsigned long) (vg_replace_malloc.c:363)
==5435== by 0x1148E564: void agg::render_scanlinesagg::rasterizer_scanline_aa<agg::rasterizer_sl_clip<agg::ras_conv_dbl >, agg::scanline_p8, agg::renderer_scanline_bin_solid<agg::renderer_base<agg::pixfmt_alpha_blend_rgba<agg::blender_rgba<agg::rgba8, agg::order_rgba>, agg::row_accessor, unsigned int> > > >(agg::rasterizer_scanline_aaagg::rasterizer_sl_clip<agg::ras_conv_dbl >&, agg::scanline_p8&, agg::renderer_scanline_bin_solid<agg::renderer_base<agg::pixfmt_alpha_blend_rgba<agg::blender_rgba<agg::rgba8, agg::order_rgba>, agg::row_accessor, unsigned int> > >&) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x1149232E: void RendererAgg::_draw_path<agg::conv_curve<PathSimplifier<PathSnapper<PathClipper<PathNanRemover<agg::conv_transform<PathIterator, agg::trans_affine> > > > >, agg::curve3, agg::curve4> >(agg::conv_curve<PathSimplifier<PathSnapper<PathClipper<PathNanRemover<agg::conv_transform<PathIterator, agg::trans_affine> > > > >, agg::curve3, agg::curve4>&, bool, std::pair<bool, agg::rgba> const&, GCAgg const&) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x11474852: RendererAgg::draw_path(Py::Tuple const&) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x1147CE78: Py::PythonExtension::method_varargs_call_handler(object, object) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x4EEB935: PyCFunction_Call (methodobject.c:81)
==5435== by 0x4F91A27: call_function (ceval.c:4021)
==5435== by 0x4F8C52B: PyEval_EvalFrameEx (ceval.c:2666)
==5435== by 0x4F8EF61: PyEval_EvalCodeEx (ceval.c:3253)
==5435== by 0x4F9206D: fast_function (ceval.c:4117)
==5435== by 0x4F91C28: call_function (ceval.c:4042)
==5435== by 0x4F8C52B: PyEval_EvalFrameEx (ceval.c:2666)
==5435== 13,568 bytes in 1 blocks are possibly lost in loss record 1,778 of 1,915
==5435== at 0x4C2B8F7: operator new[](unsigned long) (vg_replace_malloc.c:363)
==5435== by 0x11487D85: agg::rasterizer_cells_aaagg::cell_aa::sort_cells() (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x1148E51D: void agg::render_scanlinesagg::rasterizer_scanline_aa<agg::rasterizer_sl_clip<agg::ras_conv_dbl >, agg::scanline_p8, agg::renderer_scanline_bin_solid<agg::renderer_base<agg::pixfmt_alpha_blend_rgba<agg::blender_rgba<agg::rgba8, agg::order_rgba>, agg::row_accessor, unsigned int> > > >(agg::rasterizer_scanline_aaagg::rasterizer_sl_clip<agg::ras_conv_dbl >&, agg::scanline_p8&, agg::renderer_scanline_bin_solid<agg::renderer_base<agg::pixfmt_alpha_blend_rgba<agg::blender_rgba<agg::rgba8, agg::order_rgba>, agg::row_accessor, unsigned int> > >&) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x1149232E: void RendererAgg::_draw_path<agg::conv_curve<PathSimplifier<PathSnapper<PathClipper<PathNanRemover<agg::conv_transform<PathIterator, agg::trans_affine> > > > >, agg::curve3, agg::curve4> >(agg::conv_curve<PathSimplifier<PathSnapper<PathClipper<PathNanRemover<agg::conv_transform<PathIterator, agg::trans_affine> > > > >, agg::curve3, agg::curve4>&, bool, std::pair<bool, agg::rgba> const&, GCAgg const&) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x11474852: RendererAgg::draw_path(Py::Tuple const&) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x1147CE78: Py::PythonExtension::method_varargs_call_handler(object, object) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x4EEB935: PyCFunction_Call (methodobject.c:81)
==5435== by 0x4F91A27: call_function (ceval.c:4021)
==5435== by 0x4F8C52B: PyEval_EvalFrameEx (ceval.c:2666)
==5435== by 0x4F8EF61: PyEval_EvalCodeEx (ceval.c:3253)
==5435== by 0x4F9206D: fast_function (ceval.c:4117)
==5435== by 0x4F91C28: call_function (ceval.c:4042)
==5435== 11,000 bytes in 11 blocks are possibly lost in loss record 1,755 of 1,915
==5435== at 0x4C2C63B: malloc (vg_replace_malloc.c:270)
==5435== by 0x4EF3742: PyObject_Malloc (obmalloc.c:943)
==5435== by 0x4EF41CD: _PyObject_DebugMallocApi (obmalloc.c:1445)
==5435== by 0x4EF40BF: _PyMem_DebugMalloc (obmalloc.c:1395)
==5435== by 0x4EBC491: fill_free_list (floatobject.c:43)
==5435== by 0x4EBC7C0: PyFloat_FromDouble (floatobject.c:146)
==5435== by 0xE0FF3B4: FT2Font::set_text(Py::Tuple const&, Py::Dict const&) (in /usr/lib64/python2.7/site-packages/matplotlib/ft2font.so)
==5435== by 0xE0FFCC3: _callKeywordsMethod__set_text(object, object, _object*) (in /usr/lib64/python2.7/site-packages/matplotlib/ft2font.so)
==5435== by 0x4EEB94F: PyCFunction_Call (methodobject.c:85)
==5435== by 0x4F928EF: do_call (ceval.c:4236)
==5435== by 0x4F91C44: call_function (ceval.c:4044)
==5435== by 0x4F8C52B: PyEval_EvalFrameEx (ceval.c:2666)
==5435== 6,856 bytes in 1 blocks are possibly lost in loss record 1,735 of 1,915
==5435== at 0x4C2B8F7: operator new[](unsigned long) (vg_replace_malloc.c:363)
==5435== by 0x11487DA3: agg::rasterizer_cells_aaagg::cell_aa::sort_cells() (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x1148E51D: void agg::render_scanlinesagg::rasterizer_scanline_aa<agg::rasterizer_sl_clip<agg::ras_conv_dbl >, agg::scanline_p8, agg::renderer_scanline_bin_solid<agg::renderer_base<agg::pixfmt_alpha_blend_rgba<agg::blender_rgba<agg::rgba8, agg::order_rgba>, agg::row_accessor, unsigned int> > > >(agg::rasterizer_scanline_aaagg::rasterizer_sl_clip<agg::ras_conv_dbl >&, agg::scanline_p8&, agg::renderer_scanline_bin_solid<agg::renderer_base<agg::pixfmt_alpha_blend_rgba<agg::blender_rgba<agg::rgba8, agg::order_rgba>, agg::row_accessor, unsigned int> > >&) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x1149232E: void RendererAgg::_draw_path<agg::conv_curve<PathSimplifier<PathSnapper<PathClipper<PathNanRemover<agg::conv_transform<PathIterator, agg::trans_affine> > > > >, agg::curve3, agg::curve4> >(agg::conv_curve<PathSimplifier<PathSnapper<PathClipper<PathNanRemover<agg::conv_transform<PathIterator, agg::trans_affine> > > > >, agg::curve3, agg::curve4>&, bool, std::pair<bool, agg::rgba> const&, GCAgg const&) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x11474852: RendererAgg::draw_path(Py::Tuple const&) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x1147CE78: Py::PythonExtension::method_varargs_call_handler(object, object) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x4EEB935: PyCFunction_Call (methodobject.c:81)
==5435== by 0x4F91A27: call_function (ceval.c:4021)
==5435== by 0x4F8C52B: PyEval_EvalFrameEx (ceval.c:2666)
==5435== by 0x4F8EF61: PyEval_EvalCodeEx (ceval.c:3253)
==5435== by 0x4F9206D: fast_function (ceval.c:4117)
==5435== by 0x4F91C28: call_function (ceval.c:4042)
==5435== 3,000 bytes in 3 blocks are possibly lost in loss record 1,646 of 1,915
==5435== at 0x4C2C63B: malloc (vg_replace_malloc.c:270)
==5435== by 0x4EF3742: PyObject_Malloc (obmalloc.c:943)
==5435== by 0x4EF41CD: _PyObject_DebugMallocApi (obmalloc.c:1445)
==5435== by 0x4EF40BF: _PyMem_DebugMalloc (obmalloc.c:1395)
==5435== by 0x4EBC491: fill_free_list (floatobject.c:43)
==5435== by 0x4EBC7C0: PyFloat_FromDouble (floatobject.c:146)
==5435== by 0xE0FF2D2: FT2Font::set_text(Py::Tuple const&, Py::Dict const&) (in /usr/lib64/python2.7/site-packages/matplotlib/ft2font.so)
==5435== by 0xE0FFCC3: _callKeywordsMethod__set_text(object, object, _object*) (in /usr/lib64/python2.7/site-packages/matplotlib/ft2font.so)
==5435== by 0x4EEB94F: PyCFunction_Call (methodobject.c:85)
==5435== by 0x4F928EF: do_call (ceval.c:4236)
==5435== by 0x4F91C44: call_function (ceval.c:4044)
==5435== by 0x4F8C52B: PyEval_EvalFrameEx (ceval.c:2666)
==5435== 2,048 bytes in 1 blocks are possibly lost in loss record 1,629 of 1,915
==5435== at 0x4C2B8F7: operator new[](unsigned long) (vg_replace_malloc.c:363)
==5435== by 0x11487986: agg::rasterizer_cells_aaagg::cell_aa::allocate_block() (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x1148CD48: agg::rasterizer_cells_aaagg::cell_aa::line(int, int, int, int) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x1148D5C0: void agg::rasterizer_sl_clipagg::ras_conv_dbl::line_toagg::rasterizer_cells_aa<agg::cell_aa >(agg::rasterizer_cells_aaagg::cell_aa&, double, double) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x1148DB43: agg::rasterizer_scanline_aaagg::rasterizer_sl_clip<agg::ras_conv_dbl >::add_vertex(double, double, unsigned int) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x1148E1C5: void agg::rasterizer_scanline_aaagg::rasterizer_sl_clip<agg::ras_conv_dbl >::add_path<agg::conv_curve<PathSimplifier<PathSnapper<PathClipper<PathNanRemover<agg::conv_transform<PathIterator, agg::trans_affine> > > > >, agg::curve3, agg::curve4> >(agg::conv_curve<PathSimplifier<PathSnapper<PathClipper<PathNanRemover<agg::conv_transform<PathIterator, agg::trans_affine> > > > >, agg::curve3, agg::curve4>&, unsigned int) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x11490E5F: void RendererAgg::_draw_path<agg::conv_curve<PathSimplifier<PathSnapper<PathClipper<PathNanRemover<agg::conv_transform<PathIterator, agg::trans_affine> > > > >, agg::curve3, agg::curve4> >(agg::conv_curve<PathSimplifier<PathSnapper<PathClipper<PathNanRemover<agg::conv_transform<PathIterator, agg::trans_affine> > > > >, agg::curve3, agg::curve4>&, bool, std::pair<bool, agg::rgba> const&, GCAgg const&) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x11474852: RendererAgg::draw_path(Py::Tuple const&) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x1147CE78: Py::PythonExtension::method_varargs_call_handler(object, object) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x4EEB935: PyCFunction_Call (methodobject.c:81)
==5435== by 0x4F91A27: call_function (ceval.c:4021)
==5435== by 0x4F8C52B: PyEval_EvalFrameEx (ceval.c:2666)
==5435== 2,000 bytes in 2 blocks are possibly lost in loss record 1,625 of 1,915
==5435== at 0x4C2C63B: malloc (vg_replace_malloc.c:270)
==5435== by 0x4EF3742: PyObject_Malloc (obmalloc.c:943)
==5435== by 0x4EF41CD: _PyObject_DebugMallocApi (obmalloc.c:1445)
==5435== by 0x4EF40BF: _PyMem_DebugMalloc (obmalloc.c:1395)
==5435== by 0x4EC814D: fill_free_list (intobject.c:52)
==5435== by 0x4EC8237: PyInt_FromLong (intobject.c:104)
==5435== by 0xE0EC16F: Py::Int::Int(long) [clone .constprop.109](in /usr/lib64/python2.7/site-packages/matplotlib/ft2font.so)
==5435== by 0xE0F2BCB: FT2Font::get_width_height(Py::Tuple const&) (in /usr/lib64/python2.7/site-packages/matplotlib/ft2font.so)
==5435== by 0xE0F2D74: _callVarArgsMethod__get_width_height(object, object, _object*) (in /usr/lib64/python2.7/site-packages/matplotlib/ft2font.so)
==5435== by 0x4EEB935: PyCFunction_Call (methodobject.c:81)
==5435== by 0x4F91A27: call_function (ceval.c:4021)
==5435== by 0x4F8C52B: PyEval_EvalFrameEx (ceval.c:2666)
==5435== 1,000 bytes in 1 blocks are possibly lost in loss record 1,551 of 1,915
==5435== at 0x4C2C63B: malloc (vg_replace_malloc.c:270)
==5435== by 0x4EF3742: PyObject_Malloc (obmalloc.c:943)
==5435== by 0x4EF41CD: _PyObject_DebugMallocApi (obmalloc.c:1445)
==5435== by 0x4EF40BF: _PyMem_DebugMalloc (obmalloc.c:1395)
==5435== by 0x4EC814D: fill_free_list (intobject.c:52)
==5435== by 0x4EC8237: PyInt_FromLong (intobject.c:104)
==5435== by 0xE0EC16F: Py::Int::Int(long) [clone .constprop.109](in /usr/lib64/python2.7/site-packages/matplotlib/ft2font.so)
==5435== by 0xE0F2921: FT2Font::get_descent(Py::Tuple const&) (in /usr/lib64/python2.7/site-packages/matplotlib/ft2font.so)
==5435== by 0xE0F29E4: _callVarArgsMethod__get_descent(object, object, _object*) (in /usr/lib64/python2.7/site-packages/matplotlib/ft2font.so)
==5435== by 0x4EEB935: PyCFunction_Call (methodobject.c:81)
==5435== by 0x4F91A27: call_function (ceval.c:4021)
==5435== by 0x4F8C52B: PyEval_EvalFrameEx (ceval.c:2666)
==5435== 800 bytes in 1 blocks are possibly lost in loss record 1,514 of 1,915
==5435== at 0x4C2C63B: malloc (vg_replace_malloc.c:270)
==5435== by 0x4EF3742: PyObject_Malloc (obmalloc.c:943)
==5435== by 0x4EF41CD: _PyObject_DebugMallocApi (obmalloc.c:1445)
==5435== by 0x4EF40BF: _PyMem_DebugMalloc (obmalloc.c:1395)
==5435== by 0x4EE27A6: dictresize (dictobject.c:643)
==5435== by 0x4EE2CE4: dict_set_item_by_hash_or_entry (dictobject.c:788)
==5435== by 0x4EE2DED: PyDict_SetItem (dictobject.c:818)
==5435== by 0x4EE41FB: dict_ass_sub (dictobject.c:1211)
==5435== by 0x4E7FDF4: PyObject_SetItem (abstract.c:173)
==5435== by 0xE101784: Py::MapBasePy::Object::setItem(Py::Object const&, Py::Object const&) (in /usr/lib64/python2.7/site-packages/matplotlib/ft2font.so)
==5435== by 0xE0EBEEB: Py::maprefPy::Object::operator=(Py::Object const&) [clone .constprop.106](in /usr/lib64/python2.7/site-packages/matplotlib/ft2font.so)
==5435== by 0xE0EC68F: FT2Font::setattro(Py::String const&, Py::Object const&) (in /usr/lib64/python2.7/site-packages/matplotlib/ft2font.so)
==5435== 328 bytes in 1 blocks are possibly lost in loss record 1,240 of 1,915
==5435== at 0x4C2C63B: malloc (vg_replace_malloc.c:270)
==5435== by 0x4EF3742: PyObject_Malloc (obmalloc.c:943)
==5435== by 0x4EF41CD: _PyObject_DebugMallocApi (obmalloc.c:1445)
==5435== by 0x4EF4124: _PyObject_DebugMalloc (obmalloc.c:1412)
==5435== by 0x4FDF6A8: _PyObject_GC_Malloc (gcmodule.c:1499)
==5435== by 0x4FDF754: _PyObject_GC_New (gcmodule.c:1521)
==5435== by 0x4EE1678: PyDict_New (dictobject.c:277)
==5435== by 0x4F220BD: PyType_Ready (typeobject.c:4034)
==5435== by 0xE106C3C: Py::PythonType::readyType() (in /usr/lib64/python2.7/site-packages/matplotlib/ft2font.so)
==5435== by 0xE0EF26F: Glyph::init_type() (in /usr/lib64/python2.7/site-packages/matplotlib/ft2font.so)
==5435== by 0xE0F9EE6: ft2font_module::ft2font_module() (in /usr/lib64/python2.7/site-packages/matplotlib/ft2font.so)
==5435== by 0xE0FBD3C: initft2font (in /usr/lib64/python2.7/site-packages/matplotlib/ft2font.so)
==5435== 48 bytes in 1 blocks are possibly lost in loss record 792 of 1,915
==5435== at 0x4C2C067: operator new(unsigned long) (vg_replace_malloc.c:298)
==5435== by 0x114609C1: Py::ExtensionModuleBase::initialize(char const_) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x1147F7FD: Py::ExtensionModule<backend_agg_module>::initialize(char const) (in /usr/lib64/python2.7/site-packages/matplotlib/backends/_backend_agg.so)
==5435== by 0x1147079B: init_backend_agg (in /usr/lib64/python2.7/site-packages/matplotlib/backends/backend_agg.so)
==5435== by 0x4FB3FD9: PyImport_LoadDynamicModule (importdl.c:53)
==5435== by 0x4FAFDDB: load_module (import.c:1915)
==5435== by 0x4FB21A4: import_submodule (import.c:2700)
==5435== by 0x4FB16C1: load_next (import.c:2515)
==5435== by 0x4FB0829: import_module_level (import.c:2232)
==5435== by 0x4FB0D57: PyImport_ImportModuleLevel (import.c:2288)
==5435== by 0x4F7A6A2: builtin___import (bltinmodule.c:49)
==5435== by 0x4EEB94F: PyCFunction_Call (methodobject.c:85)
==5435== 48 bytes in 1 blocks are possibly lost in loss record 787 of 1,915
==5435== at 0x4C2C067: operator new(unsigned long) (vg_replace_malloc.c:298)
==5435== by 0xE10A6C1: Py::ExtensionModuleBase::initialize(char const_) (in /usr/lib64/python2.7/site-packages/matplotlib/ft2font.so)
==5435== by 0xE1032FD: Py::ExtensionModule<ft2font_module>::initialize(char const_) (in /usr/lib64/python2.7/site-packages/matplotlib/ft2font.so)
==5435== by 0xE0F9EFA: ft2font_module::ft2font_module() (in /usr/lib64/python2.7/site-packages/matplotlib/ft2font.so)
==5435== by 0xE0FBD3C: initft2font (in /usr/lib64/python2.7/site-packages/matplotlib/ft2font.so)
==5435== by 0x4FB3FD9: PyImport_LoadDynamicModule (importdl.c:53)
==5435== by 0x4FAFDDB: load_module (import.c:1915)
==5435== by 0x4FB21A4: import_submodule (import.c:2700)
==5435== by 0x4FB1CD8: ensure_fromlist (import.c:2606)
==5435== by 0x4FB0C74: import_module_level (import.c:2269)
==5435== by 0x4FB0D57: PyImport_ImportModuleLevel (import.c:2288)
==5435== by 0x4F7A6A2: builtin___import_ (bltinmodule.c:49)
==5435==
==5435== 48 bytes in 1 blocks are possibly lost in loss record 788 of 1,915
==5435== at 0x4C2C067: operator new(unsigned long) (vg_replace_malloc.c:298)
==5435== by 0xFB2EF11: Py::ExtensionModuleBase::initialize(char const_) (in /usr/lib64/python2.7/site-packages/matplotlib/_png.so)
==5435== by 0xFB2748D: Py::ExtensionModule<png_module>::initialize(char const) (in /usr/lib64/python2.7/site-packages/matplotlib/_png.so)
==5435== by 0xFB256D9: init_png (in /usr/lib64/python2.7/site-packages/matplotlib/png.so)
==5435== by 0x4FB3FD9: PyImport_LoadDynamicModule (importdl.c:53)
==5435== by 0x4FAFDDB: load_module (import.c:1915)
==5435== by 0x4FB21A4: import_submodule (import.c:2700)
==5435== by 0x4FB16C1: load_next (import.c:2515)
==5435== by 0x4FB0829: import_module_level (import.c:2232)
==5435== by 0x4FB0D57: PyImport_ImportModuleLevel (import.c:2288)
==5435== by 0x4F7A6A2: builtin___import (bltinmodule.c:49)
==5435== by 0x4EEB94F: PyCFunction_Call (methodobject.c:85)
==5435==
==5435== 48 bytes in 1 blocks are possibly lost in loss record 789 of 1,915
==5435== at 0x4C2C067: operator new(unsigned long) (vg_replace_malloc.c:298)
==5435== by 0x105B5CE1: Py::ExtensionModuleBase::initialize(char const_) (in /usr/lib64/python2.7/site-packages/matplotlib/_image.so)
==5435== by 0x105A7CBD: Py::ExtensionModule<image_module>::initialize(char const) (in /usr/lib64/python2.7/site-packages/matplotlib/_image.so)
==5435== by 0x105ABFE5: _image_module::_image_module() (in /usr/lib64/python2.7/site-packages/matplotlib/_image.so)
==5435== by 0x1059EE74: init_image (in /usr/lib64/python2.7/site-packages/matplotlib/image.so)
==5435== by 0x4FB3FD9: PyImport_LoadDynamicModule (importdl.c:53)
==5435== by 0x4FAFDDB: load_module (import.c:1915)
==5435== by 0x4FB21A4: import_submodule (import.c:2700)
==5435== by 0x4FB16C1: load_next (import.c:2515)
==5435== by 0x4FB0829: import_module_level (import.c:2232)
==5435== by 0x4FB0D57: PyImport_ImportModuleLevel (import.c:2288)
==5435== by 0x4F7A6A2: builtin___import (bltinmodule.c:49)
==5435==
==5435== 48 bytes in 1 blocks are possibly lost in loss record 790 of 1,915
==5435== at 0x4C2C067: operator new(unsigned long) (vg_replace_malloc.c:298)
==5435== by 0x10A0F341: Py::ExtensionModuleBase::initialize(char const_) (in /usr/lib64/python2.7/site-packages/matplotlib/tri.so)
==5435== by 0x10A02EBD: Py::ExtensionModule::initialize(char const) (in /usr/lib64/python2.7/site-packages/matplotlib/_tri.so)
==5435== by 0x109FEF3E: TriModule::TriModule() (in /usr/lib64/python2.7/site-packages/matplotlib/_tri.so)
==5435== by 0x109FF10F: init_tri (in /usr/lib64/python2.7/site-packages/matplotlib/tri.so)
==5435== by 0x4FB3FD9: PyImport_LoadDynamicModule (importdl.c:53)
==5435== by 0x4FAFDDB: load_module (import.c:1915)
==5435== by 0x4FB21A4: import_submodule (import.c:2700)
==5435== by 0x4FB16C1: load_next (import.c:2515)
==5435== by 0x4FB0829: import_module_level (import.c:2232)
==5435== by 0x4FB0D57: PyImport_ImportModuleLevel (import.c:2288)
==5435== by 0x4F7A6A2: builtin___import (bltinmodule.c:49)
==5435== 48 bytes in 1 blocks are possibly lost in loss record 786 of 1,915
==5435== at 0x4C2C067: operator new(unsigned long) (vg_replace_malloc.c:298)
==5435== by 0xD96B311: Py::ExtensionModuleBase::initialize(char const_) (in /usr/lib64/python2.7/site-packages/matplotlib/_path.so)
==5435== by 0xD98568D: Py::ExtensionModule<path_module>::initialize(char const) (in /usr/lib64/python2.7/site-packages/matplotlib/_path.so)
==5435== by 0xD98B23C: _path_module::_path_module() (in /usr/lib64/python2.7/site-packages/matplotlib/_path.so)
==5435== by 0xD98468C: init_path (in /usr/lib64/python2.7/site-packages/matplotlib/path.so)
==5435== by 0x4FB3FD9: PyImport_LoadDynamicModule (importdl.c:53)
==5435== by 0x4FAFDDB: load_module (import.c:1915)
==5435== by 0x4FB21A4: import_submodule (import.c:2700)
==5435== by 0x4FB16C1: load_next (import.c:2515)
==5435== by 0x4FB0829: import_module_level (import.c:2232)
==5435== by 0x4FB0D57: PyImport_ImportModuleLevel (import.c:2288)
==5435== by 0x4F7A6A2: builtin___import (bltinmodule.c:49)
The text was updated successfully, but these errors were encountered: