Ticket #563 (closed defect: fixed)

Opened 3 years ago

Last modified 2 years ago

[with spkg] memleak in LinBox::MatrixHom::BlasBlackboxMAP exposed by ModularSymbols(n,sign=1).decomposition()

Reported by: mabshoff Owned by: mabshoff
Priority: major Milestone: sage-2.8.13
Component: memleak Keywords:
Cc: Author(s):
Report Upstream: Reviewer(s):
Merged in: Work issues:

Description

Hello folks,

for n in range(10,100): a=ModularSymbols(n,sign=1).decomposition(); print n, get_memory_usage()

causes (among other things) the following:

==5107== 684,128 (349,720 direct, 334,408 indirect) bytes in 1,249 blocks are definitely lost in loss record 2,897 of 2,944
==5107==    at 0x4A06019: operator new(unsigned long) (vg_replace_malloc.c:167)
==5107==    by 0x1FA16467: LinBox::MatrixHom::BlasBlackboxMAP<LinBox::Modular<double>, LinBox::DenseMatrix<LinBox::Unparamet
ricField<Integer> >, LinBox::MatrixContainerCategory::Container>::operator()(LinBox::BlasBlackbox<LinBox::Modular<double> >*
&, LinBox::DenseMatrix<LinBox::UnparametricField<Integer> > const&, LinBox::Modular<double> const&, LinBox::MatrixContainerC
ategory::Container) (in /tmp/Work2/sage-2.8.3.rc3/local/lib/liblinboxwrap.so.0.0.0)
==5107==    by 0x1FA16685: void LinBox::MatrixHom::map<LinBox::Modular<double>, LinBox::DenseMatrix<LinBox::UnparametricFiel
d<Integer> > >(LinBox::BlasBlackbox<LinBox::Modular<double> >*&, LinBox::DenseMatrix<LinBox::UnparametricField<Integer> > co
nst&, LinBox::Modular<double> const&) (in /tmp/Work2/sage-2.8.3.rc3/local/lib/liblinboxwrap.so.0.0.0)
==5107==    by 0x1FA64331: LinBox::GivPolynomial<Integer>& LinBox::cia<LinBox::GivPolynomial<Integer>, LinBox::DenseMatrix<L
inBox::UnparametricField<Integer> > >(LinBox::GivPolynomial<Integer>&, LinBox::DenseMatrix<LinBox::UnparametricField<Integer
> > const&, LinBox::BlasEliminationTraits const&) (in /tmp/Work2/sage-2.8.3.rc3/local/lib/liblinboxwrap.so.0.0.0)
==5107==    by 0x1FA64B97: LinBox::GivPolynomial<Integer>& LinBox::charpoly<LinBox::GivPolynomial<Integer>, LinBox::DenseMat
rix<LinBox::UnparametricField<Integer> > >(LinBox::GivPolynomial<Integer>&, LinBox::DenseMatrix<LinBox::UnparametricField<In
teger> > const&, LinBox::RingCategories::IntegerTag const&, LinBox::BlasEliminationTraits const&) (in /tmp/Work2/sage-2.8.3.
rc3/local/lib/liblinboxwrap.so.0.0.0)
==5107==    by 0x1FA64BD9: LinBox::GivPolynomial<Integer>& LinBox::charpoly<LinBox::GivPolynomial<Integer>, LinBox::Unparame
tricField<Integer>, LinBox::RingCategories::IntegerTag>(LinBox::GivPolynomial<Integer>&, LinBox::DenseMatrix<LinBox::Unparam
etricField<Integer> > const&, LinBox::RingCategories::IntegerTag const&, LinBox::HybridSpecifier const&) (in /tmp/Work2/sage
-2.8.3.rc3/local/lib/liblinboxwrap.so.0.0.0)
==5107==    by 0x1FA64C0D: LinBox::GivPolynomial<Integer>& LinBox::charpoly<LinBox::DenseMatrix<LinBox::UnparametricField<In
teger> >, LinBox::GivPolynomial<Integer>, LinBox::HybridSpecifier>(LinBox::GivPolynomial<Integer>&, LinBox::DenseMatrix<LinB
ox::UnparametricField<Integer> > const&, LinBox::HybridSpecifier const&) (in /tmp/Work2/sage-2.8.3.rc3/local/lib/liblinboxwr
ap.so.0.0.0)
==5107==    by 0x1FA64C39: LinBox::GivPolynomial<Integer>& LinBox::charpoly<LinBox::DenseMatrix<LinBox::UnparametricField<In
teger> >, LinBox::GivPolynomial<Integer> >(LinBox::GivPolynomial<Integer>&, LinBox::DenseMatrix<LinBox::UnparametricField<In
teger> > const&) (in /tmp/Work2/sage-2.8.3.rc3/local/lib/liblinboxwrap.so.0.0.0)
==5107==    by 0x1F9AF567: linbox_integer_dense_charpoly (in /tmp/Work2/sage-2.8.3.rc3/local/lib/liblinboxwrap.so.0.0.0)
==5107==    by 0x1F6CB0F6: __pyx_f_6linbox_20Linbox_integer_dense__poly(_object*, _object*) (linbox.cpp:1124)
==5107==    by 0x4156A2: PyObject_Call (abstract.c:1860)
==5107==    by 0x47DB71: PyEval_CallObjectWithKeywords (ceval.c:3433)

This one looks scary, too.

Cheers,

Tagged for 2.8.4

Michael

Change History

Changed 3 years ago by mabshoff

  • status changed from new to assigned

Changed 3 years ago by was

  • milestone changed from sage-2.8.4 to sage-2.9

Changed 2 years ago by mabshoff

  • summary changed from memleak in LinBox::MatrixHom::BlasBlackboxMAP exposed by ModularSymbols(n,sign=1).decomposition() to [with spkg] memleak in LinBox::MatrixHom::BlasBlackboxMAP exposed by ModularSymbols(n,sign=1).decomposition()
  • milestone changed from sage-2.9.1 to sage-2.8.13

The issue has been fixed in LinBox? by Clement Pernet, an updated spkg with the backported fix is at

 http://sage.math.washington.edu/home/mabshoff/linbox-20070915.p2.spkg

Cheers,

Michael

Changed 2 years ago by mabshoff

  • status changed from assigned to closed
  • resolution set to fixed

Merged in 2.8.13.alpha0.

Note: See TracTickets for help on using tickets.