[NumPy-Tickets] [NumPy] #1737: numpy.test() seg faults

NumPy Trac numpy-tickets@scipy....
Wed Feb 9 14:11:42 CST 2011


#1737: numpy.test() seg faults
------------------------+---------------------------------------------------
 Reporter:  sienkiew    |       Owner:  somebody
     Type:  defect      |      Status:  new     
 Priority:  high        |   Milestone:  2.0.0   
Component:  numpy.core  |     Version:  devel   
 Keywords:              |  
------------------------+---------------------------------------------------

Comment(by sienkiew):

 These suggestions have helped a lot.  I was able to get this far:

 {{{
 >>> x = rand(shape).astype(np.complex)*1j

 Evaluating ufunc multiply
 Getting arguments
 Finding inner loop
 Trying function loop 0
 Checking type for op 0, type 0: dtype('bool'), operand type:
 dtype('complex128')
 Trying function loop 1
 Checking type for op 0, type 1: dtype('int8'), operand type:
 dtype('complex128')
 Trying function loop 2
 Checking type for op 0, type 2: dtype('uint8'), operand type:
 dtype('complex128')
 Trying function loop 3
 Checking type for op 0, type 3: dtype('int16'), operand type:
 dtype('complex128')
 Trying function loop 4
 Checking type for op 0, type 4: dtype('uint16'), operand type:
 dtype('complex128')
 Trying function loop 5
 Checking type for op 0, type 5: dtype('int32'), operand type:
 dtype('complex128')
 Trying function loop 6
 Checking type for op 0, type 6: dtype('uint32'), operand type:
 dtype('complex128')
 Trying function loop 7
 Checking type for op 0, type 7: dtype('int32'), operand type:
 dtype('complex128')
 Trying function loop 8
 Checking type for op 0, type 8: dtype('uint32'), operand type:
 dtype('complex128')
 Trying function loop 9
 Checking type for op 0, type 9: dtype('int64'), operand type:
 dtype('complex128')
 Trying function loop 10
 Checking type for op 0, type 10: dtype('uint64'), operand type:
 dtype('complex128')
 Trying function loop 11
 Checking type for op 0, type 23: dtype('float16'), operand type:
 dtype('complex128')
 Trying function loop 12
 Checking type for op 0, type 11: dtype('float32'), operand type:
 dtype('complex128')
 Trying function loop 13
 Checking type for op 0, type 12: dtype('float64'), operand type:
 dtype('complex128')
 Trying function loop 14
 Checking type for op 0, type 13: dtype('float96'), operand type:
 dtype('complex128')
 Trying function loop 15
 Checking type for op 0, type 14: dtype('complex64'), operand type:
 dtype('complex128')
 Trying function loop 16
 Checking type for op 0, type 15: dtype('complex128'), operand type:
 dtype('complex128')
 Checking type for op 1, type 15: dtype('complex128'), operand type:
 dtype('complex128')

 Program received signal SIGSEGV, Segmentation fault.
 [Switching to Thread -1208437056 (LWP 15363)]
 ufunc_loop_matches (self=0x896eaa0, op=0xbfeec000,
 input_casting=NPY_SAFE_CASTING, output_casting=NPY_UNSAFE_CASTING,
 any_object=0, all_inputs_scalar=0, types=0xbfeebca0,
 out_no_castable_output=0xbfeebc98,
     out_err_src_typecode=0x1 <Address 0x1 out of bounds>,
 out_err_dst_typecode=0x1 <Address 0x1 out of bounds>) at
 numpy/core/src/umath/ufunc_object.c:1001
 1001            Py_DECREF(tmp);
 (gdb) print tmp
 $1 = (PyArray_Descr *) 0x0
 (gdb) print nin
 $2 = 2
 (gdb) print i
 $3 = 1072693248
 }}}

 It obviously didn't run through that many iterations of i and tmp was not
 NULL when it printed the debug statement on line 979, so I suspect the
 local variables got stomped during the call to PyArray_CanCastTypeTo.

 I don't have time to look at it further now, so I'm entering what I know
 into the ticket in case it gives anybody any ideas.  I'll look more
 tomorrow or the next day if I can.

-- 
Ticket URL: <http://projects.scipy.org/numpy/ticket/1737#comment:6>
NumPy <http://projects.scipy.org/numpy>
My example project


More information about the NumPy-Tickets mailing list