On Fri, Aug 31, 2012 at 4:22 AM, Dag Sverre Seljebotn
<
d.s.seljebotn@astro.uio.no> wrote:
> On 08/31/2012 09:03 AM, Ondřej Čertík wrote:
>> 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.
>
> IIRC you can recompile Python with some support for detecting memory
> leaks. One of the issues with using Valgrind, after suppressing the
> false positives, is that Python uses its own memory allocator so that
> sits between the bug and what Valgrind detects. So at least recompile
> Python to not do that.