[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