[Numpy-discussion] Vectorize bug

Travis Oliphant oliphant.travis at ieee.org
Fri Apr 14 18:47:01 CDT 2006


Albert Strasheim wrote:
> Hello all
>
> I think Valgrind might be very useful in tracking down this bug.
>
> http://valgrind.org/
>
> Example usage:
>
> ~/bin/valgrind \
> 	-v --error-limit=no --leak-check=full \ 
> 	python -c 'import numpy; numpy.test()'
>
> Valgrind emits many warnings for things going on inside Python on my Fedora
> Core 4 system, but there is also a lot of interesting things going on in the
> NumPy code.
>
> Some warnings that someone might want to look at:
>
> ==26750== Use of uninitialised value of size 4
> ==26750==    at 0x453D4B1: DOUBLE_to_OBJECT (arraytypes.inc:4470)
> ==26750==    by 0x46AB3F3: PyUFunc_GenericFunction (ufuncobject.c:1566)
> ==26750==    by 0x46ABE9F: ufunc_generic_call (ufuncobject.c:2653)
>   
I think this may be the culprit.   The buffer was not being initialized 
to NULL and so DECREF was being called on whatever was there.  This can 
produce strange results indeed depending on the environment.

I've initialized the buffer now for loops involving OBJECTs (this same 
error has happened a couple of times as it's one of the big ones for 
object arrays).   I thought I fixed all places where it might occur, but 
apparently not...

Perhaps you could try the code again.







More information about the Numpy-discussion mailing list