[SciPy-dev] ***[Possible UCE]*** Re: Another segfault

Travis Oliphant oliphant at ee.byu.edu
Fri Mar 3 16:14:04 CST 2006


Nils Wagner wrote:

>On Fri, 03 Mar 2006 14:29:56 -0700
>  Travis Oliphant <oliphant at ee.byu.edu> wrote:
>  
>
>>David M. Cooke wrote:
>>
>>    
>>
>>>"Nils Wagner" <nwagner at mecha.uni-stuttgart.de> writes:
>>>
>>> 
>>>
>>>      
>>>
>>>>On a 64 bit machine scipy.test(1,10) results in a 
>>>>segfault
>>>>The bt message differs from the bt on a 32 bit machine.
>>>>For what reason ?
>>>>
>>>>Test whether the lu_solve command segfaults, as reported 
>>>>by NilsUse minimum degree ordering on A'+A.
>>>>
>>>>Program received signal SIGSEGV, Segmentation fault.
>>>>[Switching to Thread 16384 (LWP 5170)]
>>>>0x00002aaaae34d787 in zpivotL (jcol=0, u=1, 
>>>>usepr=0x7fffffc62264, perm_r=0xc9c7d0, iperm_r=0xbd8c60,
>>>>    iperm_c=0xdb55c0, pivrow=0x7fffffc62270, Glu=0x0, 
>>>>stat=0xffffffffab80bb68) at zpivotL.c:121
>>>>121             perm_r[*pivrow] = jcol;
>>>>   
>>>>
>>>>        
>>>>
>>>btw, I can reproduce this on my 64-bit machine (grr, 
>>>can't run
>>>scipy.test() right now because of it).
>>> 
>>>
>>>      
>>>
>>I'm wondering if this has to do with the two integer 
>>arrays that make up 
>>the csc and csr representations of a sparse matrix.  I'm 
>>looking for 
>>where they are checked to make sure they are the right 
>>type (need to be 
>>int).  And I'm not finding it.
>>
>>-Travis
>>
>>
>>_______________________________________________
>>Scipy-dev mailing list
>>Scipy-dev at scipy.net
>>http://www.scipy.net/mailman/listinfo/scipy-dev
>>    
>>
>
>
>No longer a segfault on my 64-bit machine, but
>======================================================================
>ERROR: Test whether the lu_solve command segfaults, as 
>reported by Nils
>----------------------------------------------------------------------
>Traceback (most recent call last):
>   File 
>"/usr/lib64/python2.4/site-packages/scipy/sparse/tests/test_sparse.py", 
>line 255, in check_solve
>     xx = lu_factor(A.tocsc()).solve(r)
>   File 
>"/usr/lib64/python2.4/site-packages/scipy/sparse/sparse.py", 
>line 2518, in lu_factor
>     diag_pivot_thresh, drop_tol, relax, panel_size)
>TypeError: colptr and rowind must be of type cint
>
>======================================================================
>ERROR: Test whether the lu_solve command segfaults, as 
>reported by Nils
>----------------------------------------------------------------------
>Traceback (most recent call last):
>   File 
>"/usr/lib64/python2.4/site-packages/scipy/sparse/tests/test_sparse.py", 
>line 255, in check_solve
>     xx = lu_factor(A.tocsc()).solve(r)
>   File 
>"/usr/lib64/python2.4/site-packages/scipy/sparse/sparse.py", 
>line 1351, in tocsc
>     return self.tocoo().tocsc()
>   File 
>"/usr/lib64/python2.4/site-packages/scipy/sparse/sparse.py", 
>line 1347, in tocoo
>     data, col, row = func(self.data, self.colind, 
>self.indptr)
>ValueError: failed to create intent(cache|hide)|optional 
>array-- must have defined dimensions but got (0,)
>
>======================================================================
>ERROR: Test whether the lu_solve command segfaults, as 
>reported by Nils
>----------------------------------------------------------------------
>Traceback (most recent call last):
>   File 
>"/usr/lib64/python2.4/site-packages/scipy/sparse/tests/test_sparse.py", 
>line 255, in check_solve
>     xx = lu_factor(A.tocsc()).solve(r)
>   File 
>"/usr/lib64/python2.4/site-packages/scipy/sparse/sparse.py", 
>line 2518, in lu_factor
>     diag_pivot_thresh, drop_tol, relax, panel_size)
>TypeError: colptr and rowind must be of type cint
>
>----------------------------------------------------------------------
>Ran 1109 tests in 2.124s
>
>FAILED (errors=3)
>
>  
>

Good.  At least two of those errors are due to the explicit check I put 
in there.  Now, we just have to figure out why the index pointers are of 
the wrong type (they need to be of type int).  Notice, that this means 
we are limiting our matrix sizes to

2^31 x 2^31

even for 64-bit machines.   

-Travis





More information about the Scipy-dev mailing list