[SciPy-Dev] Weird segfault in call to PyArray_SIZE
Christoph Gohlke
cgohlke at uci.edu
Mon Jun 26 13:04:39 EDT 2017
On 6/25/2017 2:08 PM, Jaime Fernández del Río wrote:
> While working in scipy.ndimage I tried to replace the following code,
> see here
> <https://github.com/scipy/scipy/blob/master/scipy/ndimage/src/ni_support.c#L95> for
> the source:
>
> npy_intp max_lines;
> int ii;
>
> for (ii = 0; ii < array->nd; ii++)
> max_lines *= array->dimensions[ii];
>
> with the in theory equivalent:
>
> max_lines = PyArray_SIZE(array);
>
> Oddly enough, the result is a segfault as soon as PyArray_SIZE is
> called, e.g. by running the ndimage tests.
>
> Both numpy and scipy are the latest development versions, built by
> myself on OSX. Unfortunately I don't have Python and friends built with
> debug symbols, so the best I have been able to figure out, through
> printf debugging, is that the segfault happens before
> PyArray_MultiplyList is entered, which made me suspicious of it
> being related to import_array() not being called, but that doesn't seem
> to be the case.
>
> Any thoughts on what may be causing this?
>
> Jaime
>
On Windows the proposed change throws a link error:
ni_support.obj : error LNK2001: unresolved external symbol PyArray_API
Christoph
More information about the SciPy-Dev
mailing list