[Numpy-discussion] How to debug reference counting errors

Ondřej Čertík ondrej.certik at gmail.com
Fri Aug 31 03:03:17 EDT 2012


Hi,

There is segfault reported here:

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

I've managed to isolate the problem and even provide a simple patch,
that fixes it here:

https://github.com/numpy/numpy/issues/398

however the patch simply doesn't decrease the proper reference, so it
might leak. I've used
bisection (took the whole evening unfortunately...) but the good news
is that I've isolated commits
that actually broke it. See the github issue #398 for details, diffs etc.

Unfortunately, it's 12 commits from Mark and the individual commits
raise exception on the segfaulting code,
so I can't pin point the problem further.

In general, how can I debug this sort of problem? I tried to use
valgrind, with a debugging build of numpy,
but it provides tons of false (?) positives: https://gist.github.com/3549063

Mark, by looking at the changes that broke it, as well as at my "fix",
do you see where the problem could be?

I suspect it is something with the changes in PyArray_FromAny() or
PyArray_FromArray() in ctors.c.
But I don't see anything so far that could cause it.

Thanks for any help. This is one of the issues blocking the 1.7.0 release.

Ondrej



More information about the NumPy-Discussion mailing list