[Numpy-discussion] test_multiarray.TestIO.test_ascii segmentation fault with Python2.7

Charles R Harris charlesr.harris@gmail....
Tue Dec 15 10:59:39 CST 2009


On Tue, Dec 15, 2009 at 9:51 AM, Pauli Virtanen <pav+sp@iki.fi<pav%2Bsp@iki.fi>
> wrote:

> Tue, 15 Dec 2009 10:36:03 -0600, Bruce Southey wrote:
> [clip]
> > Program received signal SIGSEGV, Segmentation fault. setup_context
> > (registry=<value optimized out>, module=<value optimized out>,
> > lineno=<value optimized out>, filename=<value optimized out>,
> > stack_level=<value optimized out>)
> >      at Python/_warnings.c:449
> > 449         PyFrameObject *f = PyThreadState_GET()->frame; (gdb) bt
> > #0  setup_context (registry=<value optimized out>, module=<value
> > optimized out>, lineno=<value optimized out>, filename=<value optimized
> > out>, stack_level=<value optimized out>)
> >      at Python/_warnings.c:449
> > #1  do_warn (registry=<value optimized out>, module=<value optimized
> > out>, lineno=<value optimized out>, filename=<value optimized out>,
> > stack_level=<value optimized out>)
> >      at Python/_warnings.c:593
> > #2  0x0000000000493c81 in PyErr_WarnEx (category=0x760720, text=<value
> > optimized out>, stack_level=1) at Python/_warnings.c:719 #3
> > 0x00000000004c8e94 in PyOS_ascii_strtod (nptr=0x7ffff7f08914 "1 , 2 , 3
> > , 4", endptr=0x7fffffffdb28) at Python/pystrtod.c:282 #4
> > 0x00007ffff2954151 in NumPyOS_ascii_strtod (s=0x7ffff7f08914 "1 , 2 , 3
> > , 4", endptr=0x7fffffffdb28) at numpy/core/src/multiarray/numpyos.c:527
>
> Looks like it's trying to raise a deprecation warning after
> PyArray_FromString has released GIL. So that was the reason why it caused
> a segfault also in 3.1.
>
> PyOS_ascii_strtod was deprecated in 2.7 and in 3.1. Apparently, we now
> *must* do something like
>
> #if PY_VERSION_HEX >= 0x02060000
>    return PyOS_string_to_double(s, endptr, NULL);
> #else
>    return PyOS_ascii_strtod(s, endptr);
> #endif
>
> everywhere the function is used.
>
> It also seems that this needs to be backported to Numpy 1.4.x...
>
> (Note to self: this is also the origin of the crashes in scipy/
> lambertw... GIL must be reacquired before raising any warnings.)
>
>
Would it be appropriate to put macros for all these in config.h or some
other common spot? Having all the python version dependencies in one spot
might make it easier to keep current. I've been thinking of moving the numpy
deprecation macro for that reason.

Chuck
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.scipy.org/pipermail/numpy-discussion/attachments/20091215/0bdf926f/attachment.html 


More information about the NumPy-Discussion mailing list