#13864: Configure Python with  pydebug when SAGE_DEBUG is set
----------------------------------------------------------+-----------------
       Reporter:  jpflori                                 |         Owner:  
jason                           
           Type:  task                                    |        Status:  
needs_work                      
       Priority:  major                                   |     Milestone:  
sage-pending                    
      Component:  misc                                    |    Resolution:      
                            
       Keywords:  python spkg                             |   Work issues:  
make sure Sage builds and starts
Report Upstream:  N/A                                     |     Reviewers:  
Volker Braun                    
        Authors:  Jean-Pierre Flori                       |     Merged in:      
                            
   Dependencies:  #13865, #13867, #13868, #13876, #13832  |      Stopgaps:      
                            
----------------------------------------------------------+-----------------

Comment (by SimonKing):

 With a manually installed zodb3-3.10.5 and the other involved tickets,
 `make ptest` with `MALLOC_CHECK_=3` results in the following crashes:
 {{{
 The following tests failed:

         sage -t  -force_lib devel/sage/sage/combinat/tiling.py #
 Killed/crashed
         sage -t  -force_lib
 devel/sage/sage/schemes/elliptic_curves/ell_local_data.py # Killed/crashed
         sage -t  -force_lib
 devel/sage/sage/schemes/elliptic_curves/ell_finite_field.py #
 Killed/crashed
         sage -t  -force_lib
 devel/sage/sage/schemes/elliptic_curves/ell_curve_isogeny.py #
 Killed/crashed
         sage -t  -force_lib devel/sage/sage/schemes/elliptic_curves/BSD.py
 # Killed/crashed
         sage -t  -force_lib
 devel/sage/sage/schemes/elliptic_curves/ell_number_field.py #
 Killed/crashed
         sage -t  -force_lib
 devel/sage/sage/schemes/elliptic_curves/ell_torsion.py # Killed/crashed
         sage -t  -force_lib
 devel/sage/sage/schemes/elliptic_curves/ell_field.py # Killed/crashed
         sage -t  -force_lib
 devel/sage/sage/schemes/elliptic_curves/heegner.py # Killed/crashed
         sage -t  -force_lib
 devel/sage/sage/schemes/elliptic_curves/ell_point.py # Killed/crashed
         sage -t  -force_lib
 devel/sage/sage/schemes/elliptic_curves/gal_reps.py # Killed/crashed
         sage -t  -force_lib devel/sage/sage/modules/free_module.py #
 Killed/crashed
         sage -t  -force_lib devel/sage/sage/modules/matrix_morphism.py #
 Killed/crashed
         sage -t  -force_lib
 devel/sage/sage/algebras/quatalg/quaternion_algebra.py # Killed/crashed
         sage -t  -force_lib
 devel/sage/sage/quadratic_forms/quadratic_form__ternary_Tornaria.py #
 Killed/crashed
         sage -t  -force_lib
 devel/sage/sage/quadratic_forms/quadratic_form__genus.py # Killed/crashed
         sage -t  -force_lib
 devel/sage/sage/quadratic_forms/quadratic_form__equivalence_testing.py #
 Killed/crashed
         sage -t  -force_lib
 devel/sage/sage/quadratic_forms/genera/genus.py # Killed/crashed
         sage -t  -force_lib devel/sage/sage/homology/chain_complex.py #
 Killed/crashed
         sage -t  -force_lib devel/sage/sage/modular/quatalg/brandt.py #
 Killed/crashed
         sage -t  -force_lib devel/sage/sage/modular/abvar/abvar.py #
 Killed/crashed
         sage -t  -force_lib
 devel/sage/sage/modular/modform/find_generators.py # Killed/crashed
         sage -t  -force_lib devel/sage/sage/modular/modsym/ambient.py #
 Killed/crashed
         sage -t  -force_lib devel/sage/sage/rings/residue_field.pyx #
 Killed/crashed
         sage -t  -force_lib
 devel/sage/sage/rings/number_field/number_field_element.pyx #
 Killed/crashed
         sage -t  -force_lib
 devel/sage/sage/rings/number_field/number_field_ideal.py # Killed/crashed
         sage -t  -force_lib devel/sage/sage/rings/polynomial/pbori.pyx #
 Killed/crashed
         sage -t  -force_lib
 devel/sage/sage/rings/finite_rings/finite_field_base.pyx # Killed/crashed
         sage -t  -force_lib devel/sage/sage/matrix/benchmark.py #
 Killed/crashed
         sage -t  -force_lib
 devel/sage/sage/matrix/matrix_modn_dense_template.pxi # Killed/crashed
         sage -t  -force_lib
 devel/sage/sage/matrix/matrix_integer_dense_hnf.py # Killed/crashed
         sage -t  -force_lib
 devel/sage/sage/matrix/matrix_integer_dense_saturation.py # Killed/crashed
         sage -t  -force_lib devel/sage/sage/matrix/matrix_cyclo_dense.pyx
 # Killed/crashed
         sage -t  -force_lib devel/sage/sage/matrix/matrix2.pyx #
 Killed/crashed
 ----------------------------------------------------------------------
 Total time for all tests: 7238.7 seconds
 }}}

 Nils has reported a failure in an assert in `linbox/matric/permutation-
 matrix.h`, that I can confirm. Again with `MALLOC_CHECK_=3` and gdb:
 {{{
 sage: sage.homology.chain_complex.HomologyGroup(100)


 ERROR (at getWritePointer in
 /home/simon/SAGE/debug/sage-5.6.beta1/local/include/linbox/matrix
 /permutation-matrix.h:175):
 Precondition not met:P_.size()
 terminate called after throwing an instance of
 'LinBox::PreconditionFailed'

 Program received signal SIGABRT, Aborted.
 0x00007ffff6d95d95 in raise () from /lib64/libc.so.6
 (gdb) bt
 #0  0x00007ffff6d95d95 in raise () from /lib64/libc.so.6
 #1  0x00007ffff6d972ab in abort () from /lib64/libc.so.6
 #2  0x00007ffff2295f2d in __gnu_cxx::__verbose_terminate_handler() () from
 /usr/lib64/libstdc++.so.6
 #3  0x00007ffff22940d6 in ?? () from /usr/lib64/libstdc++.so.6
 #4  0x00007ffff2294103 in std::terminate() () from
 /usr/lib64/libstdc++.so.6
 #5  0x00007ffff22941fe in __cxa_throw () from /usr/lib64/libstdc++.so.6
 #6  0x00007fffd718c62f in LinBox::BlasPermutation<unsigned
 long>::getWritePointer (this=0x7fffffff6760) at
 /home/simon/SAGE/debug/sage-5.6.beta1/local/include/linbox/matrix
 /permutation-matrix.h:175
 #7  0x00007fffd717f0b1 in LinBox::LQUPMatrix<LinBox::Modular<double>
 >::LQUPMatrix (this=0x7fffffff6700, A=..., P=..., Q=...)
     at /home/simon/SAGE/debug/sage-5.6.beta1/local/include/linbox/matrix
 /factorized-matrix.inl:810
 #8  0x00007fffd716b350 in
 LinBox::EchelonFormDomain<LinBox::Modular<double>
 >::columnReducedEchelon<LinBox::BlasMatrix<LinBox::Modular<double> > >
 (this=0x6a247c0, E=...)
     at
 /home/simon/SAGE/debug/sage-5.6.beta1/local/include/linbox/algorithms
 /echelon-form.h:205
 #9  0x00007fffd716653e in
 LinBox::EchelonFormDomain<LinBox::Modular<double>
 >::rowReducedEchelon<LinBox::BlasMatrix<LinBox::Modular<double> > >
 (this=0x6a247c0, E=..., A=...)
     at
 /home/simon/SAGE/debug/sage-5.6.beta1/local/include/linbox/algorithms
 /echelon-form.h:107
 #10 0x00007fffd71279f5 in
 __pyx_f_4sage_6matrix_24matrix_modn_dense_double_linbox_echelonize_efd
 (__pyx_v_modulus=21059, __pyx_v_entries=0x6a24730, __pyx_v_nrows=0,
 __pyx_v_ncols=100)
     at sage/matrix/matrix_modn_dense_double.cpp:4074
 #11 0x00007fffd71417ca in
 
__pyx_pf_4sage_6matrix_24matrix_modn_dense_double_26Matrix_modn_dense_template_34_echelonize_linbox
 (__pyx_v_self=0x66aa6d8, __pyx_v_efd=0x7ffff7d89ec0 <_Py_TrueStruct>)
     at sage/matrix/matrix_modn_dense_double.cpp:11280
 #12 0x00007fffd71411c1 in
 
__pyx_pw_4sage_6matrix_24matrix_modn_dense_double_26Matrix_modn_dense_template_35_echelonize_linbox
 (__pyx_v_self=0x66aa6d8, __pyx_args=0x7ffff7f90060, __pyx_kwds=0x6a39940)
     at sage/matrix/matrix_modn_dense_double.cpp:11185
 #13 0x00007ffff7a21088 in PyCFunction_Call (func=0x66b40d8,
 arg=0x7ffff7f90060, kw=0x6a39940) at Objects/methodobject.c:85
 #14 0x00007ffff79be33e in PyObject_Call (func=0x66b40d8,
 arg=0x7ffff7f90060, kw=0x6a39940) at Objects/abstract.c:2529
 #15 0x00007fffd713f3ce in
 
__pyx_pf_4sage_6matrix_24matrix_modn_dense_double_26Matrix_modn_dense_template_32echelonize
 (__pyx_v_self=0x66aa6d8, __pyx_v_algorithm=0x26ae2e0,
 __pyx_v_kwds=0x6a37920)
     at sage/matrix/matrix_modn_dense_double.cpp:10889
 #16 0x00007fffd713e64a in
 
__pyx_pw_4sage_6matrix_24matrix_modn_dense_double_26Matrix_modn_dense_template_33echelonize
 (__pyx_v_self=0x66aa6d8, __pyx_args=0x7ffff7f90060, __pyx_kwds=0x6a368f0)
     at sage/matrix/matrix_modn_dense_double.cpp:10738
 #17 0x00007ffff7a21088 in PyCFunction_Call (func=0x65abc90,
 arg=0x7ffff7f90060, kw=0x6a368f0) at Objects/methodobject.c:85
 #18 0x00007ffff79be33e in PyObject_Call (func=0x65abc90,
 arg=0x7ffff7f90060, kw=0x6a368f0) at Objects/abstract.c:2529
 #19 0x00007fffd9b50c55 in
 __pyx_pf_4sage_6matrix_7matrix2_6Matrix_134echelon_form
 (__pyx_v_self=0x66aa568, __pyx_v_algorithm=0x653be0,
 __pyx_v_cutoff=0x61f5b8, __pyx_v_kwds=0x67154d0)
     at sage/matrix/matrix2.c:31710
 #20 0x00007fffd9b4ffca in
 __pyx_pw_4sage_6matrix_7matrix2_6Matrix_135echelon_form
 (__pyx_v_self=0x66aa568, __pyx_args=0x7ffff7f90060, __pyx_kwds=0x0) at
 sage/matrix/matrix2.c:31508
 #21 0x00007ffff7a21088 in PyCFunction_Call (func=0xfb0588,
 arg=0x7ffff7f90060, kw=0x0) at Objects/methodobject.c:85
 #22 0x00007ffff79be33e in PyObject_Call (func=0xfb0588,
 arg=0x7ffff7f90060, kw=0x0) at Objects/abstract.c:2529
 #23 0x00007fffd95f2e94 in
 __pyx_pf_4sage_6matrix_7matrix0_6Matrix_124pivots (__pyx_v_self=0x66aa568)
 at sage/matrix/matrix0.c:20883
 ...
 }}}

 Given the list of crashing tests above, a failure in echelonisation of
 matrices is likely to explain most of the crashes.

 Question: Is that an upstream bug (in Linbox) or did we screw up by
 ourselves?

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