[Numpy-discussion] Segfault with python 3.2 structured array non-existent field

Christoph Gohlke cgohlke at uci.edu
Sun Mar 13 12:54:10 EDT 2011



On 3/13/2011 1:57 AM, Matthew Brett wrote:
> Hi,
>
> I have this on my OSX 10.6 system and numpy 1.5.1 and current numpy
> head (30ee1d352):
>
> $ python3.2
> Python 3.2 (r32:88452, Feb 20 2011, 11:12:31)
> [GCC 4.2.1 (Apple Inc. build 5664)] on darwin
> Type "help", "copyright", "credits" or "license" for more information.
>>>> import numpy as np
>>>> a = np.zeros((1,), dtype=[('f1', 'f')])
>>>> a['f1'] = 1
>>>> a['f2'] = 1
> Segmentation fault
>
> All tests pass with np.test()
>
> Expected behavior with same code on python2.6:
>
>>>> a['f2'] = 1
> Traceback (most recent call last):
>    File "<stdin>", line 1, in<module>
> ValueError: field named f2 not found.
>
> Cheers,
>
> Matthew

Confirmed on Windows. The crash is in line 816 of mapping.c:

         PyErr_Format(PyExc_ValueError,
                      "field named %s not found.",
                      PyString_AsString(index));

This works with Python 3.x:

         PyErr_Format(PyExc_ValueError,
                      "field named %S not found.",
                      index);

Christoph




More information about the NumPy-Discussion mailing list