[SciPy-User] Problem with scipy.special.chebyt

Pauli Virtanen pav at iki.fi
Sun Aug 30 16:13:34 EDT 2009


On 2009-08-30, Ivo Maljevic <ivo.maljevic at gmail.com> wrote:
[clip]
> OK, let me know what I can do then to help. For starters, here is the output
> from Mandriva. Keep in mind that I'm using mandriva for the first time in my
> life, so I'm not quite versed in using it:.
>
> I changed the colour to red for the library part.
>
> (gdb) run cheby.py
> Starting program: /usr/bin/python cheby.py
> [Thread debugging using libthread_db enabled]
> [New Thread 0xb7c056c0 (LWP 3763)]
> [ 0.99144486  0.92387953  0.79335334  0.60876143  0.38268343 -0.99144486
>   0.13052619 -0.92387953 -0.13052619 -0.79335334 -0.38268343 -0.60876143]
> det(A)=0.000488281
>
> Program received signal SIGSEGV, Segmentation fault.
> 0xb7e89ed8 in ?? () from /usr/lib/libpython2.6.so.1.0

This probably gets a bit advanced now that the problematic area 
is pinpointed. Some knowledge / willingness to learn 
independently about C and LAPACK/BLAS may be required.

We need to move this discussion to Numpy Trac,

	http://projects.scipy.org/numpy/ticket/1211

so that we don't spam scipy.users list needlessly with this.

    ***

My checklist for the bug would be this -- as I don't know exactly 
what's wrong it's best to check many things and hope to hit 
something:


  Q: Is it really LAPACK or BLAS, and if yes, which one?

- install a different BLAS library, and use 
  "export LD_PRELOAD=/usr/lib/libANOTHERBLAS.so.1"
  to switch to using it. Does the crash persist?
- if you are using an architecture-optimized ATLAS library, try installing
  a less optimized one
- try to recompile LAPACK, and again try to use it. Does the crash persist?
- write a fortran/C-only test case. does it crash, too?


  Q: Are the input parameters to LAPACK sane?

- insert printf statements before and after DGEEV calls in lapack_litemodule.c,
  to print all parameters passed in to DGEEV
- check against lapack manual that the parameters passed to LAPACK are valid
- check that array sizes are large enough
- what does LAPACK report as its lwork? is it sane?
- check if data alignment can be a problem, cf.
  http://projects.scipy.org/numpy/ticket/551
  although I don't really believe this is the problem here.


  Q: Can the crash be traced better?

- insert "print 'PRE'" and "print 'POST'" before and after eig()
- run it under valgrind: are there warnings between PRE/POST?

  Pass --suppressions=valgrind-python.supp to valgrind to 
  suppress some common Python warnings, the suppression file is here:
  http://svn.python.org/projects/python/trunk/Misc/valgrind-python.supp


  Q: Are other things failing, too?

- Try running "numpy.test()" and "scipy.test()".


Other things to do:

- Write this as a suitable regression test in numpy/linalg/tests/test_regression.py
  so that this problem cannot recur silently in future releases.

  Submit it as a patch to be committed to SVN.


-- 
Pauli Virtanen




More information about the SciPy-User mailing list