[Numpy-discussion] segmentation fault

Stéfan van der Walt stefan at sun.ac.za
Wed May 28 10:53:22 EDT 2008


2008/5/28 Keith Goodman <kwgoodman at gmail.com>:
> Does anyone else get this seg fault?
>
>>> def fn():
>    x = np.random.rand(5,2)
>    x.cumsum(None, out=x)
>    return x
>   ....:
>>> fn()
> *** glibc detected *** /usr/bin/python: double free or corruption
> (out): 0x08212dc8 ***
>
> I'm running 1.0.4 from Debian Lenny with python 2.5.2 compiled with
> gcc 4.2.3-3, if that matters.

Yeap, big bada-boom.  Well caught!

==28547== Source and destination overlap in memcpy(0x5B83198, 0x5B83198, 8)
==28547==    at 0x4C2508B: memcpy (mc_replace_strmem.c:402)
==28547==    by 0x60C2574: PyUFunc_GenericReduction (ufuncobject.c:2758)
==28547==    by 0x417E72: PyObject_Call (abstract.c:1861)
==28547==    by 0x5E5AD22: PyArray_GenericAccumulateFunction
(arrayobject.c:3531)
==28547==    by 0x5E76031: PyArray_CumSum (multiarraymodule.c:991)
==28547==    by 0x5E7611C: array_cumsum (arraymethods.c:1533)
==28547==    by 0x417E72: PyObject_Call (abstract.c:1861)
==28547==    by 0x4860E9: PyEval_EvalFrameEx (ceval.c:3784)
==28547==    by 0x488B76: PyEval_EvalFrameEx (ceval.c:3659)
==28547==    by 0x48A375: PyEval_EvalCodeEx (ceval.c:2836)

==28547== Invalid write of size 8
==28547==    at 0x60B6362: DOUBLE_add (umathmodule.c.src:1019)
==28547==    by 0x60C25A3: PyUFunc_GenericReduction (ufuncobject.c:2762)
==28547==    by 0x417E72: PyObject_Call (abstract.c:1861)
==28547==    by 0x5E5AD22: PyArray_GenericAccumulateFunction
(arrayobject.c:3531)
==28547==    by 0x5E76031: PyArray_CumSum (multiarraymodule.c:991)
==28547==    by 0x5E7611C: array_cumsum (arraymethods.c:1533)
==28547==    by 0x417E72: PyObject_Call (abstract.c:1861)
==28547==    by 0x4860E9: PyEval_EvalFrameEx (ceval.c:3784)
==28547==    by 0x488B76: PyEval_EvalFrameEx (ceval.c:3659)
==28547==    by 0x48A375: PyEval_EvalCodeEx (ceval.c:2836)

Cheers
Stéfan



More information about the NumPy-Discussion mailing list