[NumPy-Tickets] [NumPy] #1808: numpy.load segfaults

NumPy Trac numpy-tickets@scipy....
Tue Apr 26 04:42:24 CDT 2011

#1808: numpy.load segfaults
 Reporter:  jpaalasm              |       Owner:  somebody   
     Type:  defect                |      Status:  new        
 Priority:  normal                |   Milestone:  Unscheduled
Component:  numpy.core            |     Version:  1.5.1      
 Keywords:  segfault, numpy.load  |  
 An array with dtype

 numpy.dtype([("time", object), ("value", "|S1")])

 was saved to a file with numpy.save on a 32-bit Ubuntu.

 The loading of the file using numpy.load crashes on 64-bit Ubuntu, but
 succeeds with 32-bit Ubuntu. Numpy version is 1.5.1.

 == 64-bit Ubuntu 10.04: ==

 jpaalasm@ubuntu:~$ gdb --args python -c "import numpy;
 GNU gdb (GDB) 7.1-ubuntu
 Copyright (C) 2010 Free Software Foundation, Inc.
 License GPLv3+: GNU GPL version 3 or later
 This is free software: you are free to change and redistribute it.
 There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
 and "show warranty" for details.
 This GDB was configured as "x86_64-linux-gnu".
 For bug reporting instructions, please see:
 Reading symbols from /usr/bin/python...Reading symbols from
 (gdb) c
 The program is not being run.
 (gdb) run
 Starting program: /usr/bin/python -c import\ numpy\;\
 [Thread debugging using libthread_db enabled]

 Program received signal SIGSEGV, Segmentation fault.
 0x00007ffff6755778 in PyArray_Item_XDECREF (data=0xe3f960 "xޮ",
 descr=0x7ffff3bdc198) at numpy/core/src/arrayobject.c:205
 205     numpy/core/src/arrayobject.c: No such file or directory.
         in numpy/core/src/arrayobject.c
 (gdb) bt
 #0  0x00007ffff6755778 in PyArray_Item_XDECREF (data=0xe3f960 "xޮ",
 descr=0x7ffff3bdc198) at numpy/core/src/arrayobject.c:205
 #1  0x00007ffff6755749 in PyArray_Item_XDECREF (data=0xe3f960 "xޮ",
 descr=0x7ffff3bdc4f8) at numpy/core/src/arrayobject.c:221
 #2  0x00007ffff675ddcb in PyArray_XDECREF (mp=0xb29040) at
 #3  0x00007ffff67719bc in array_dealloc (self=0xb29040) at
 #4  0x00000000004a3631 in PyEval_EvalFrameEx (f=Frame 0x91c180, for file
 <string>, line 1, in <module> (), throwflag=<value optimized out>) at
 #5  0x00000000004a9671 in PyEval_EvalCodeEx (co=0x7ffff7ef6af8,
 globals=<value optimized out>, locals=<value optimized out>, args=0x0,
 argcount=<value optimized out>, kws=<value optimized out>, kwcount=0,
     defs=0x0, defcount=0, closure=0x0) at ../Python/ceval.c:3000
 #6  0x00000000004a9742 in PyEval_EvalCode (co=0xe3f960,
 globals=<numpy.dtype at remote 0x7ffff3bdc198>, locals=0x0) at
 #7  0x00000000004caae7 in run_mod (command=<value optimized out>,
 flags=<value optimized out>) at ../Python/pythonrun.c:1339
 #8  PyRun_StringFlags (command=<value optimized out>, flags=<value
 optimized out>) at ../Python/pythonrun.c:1302
 #9  PyRun_SimpleStringFlags (command=<value optimized out>, flags=<value
 optimized out>) at ../Python/pythonrun.c:961
 #10 0x000000000041a268 in Py_Main (argc=1, argv=<value optimized out>) at
 #11 0x00007ffff69d8c4d in __libc_start_main () from /lib/libc.so.6
 #12 0x00000000004199f9 in _start ()

 == 32-bit Ubuntu 10.04: ==

 In [5]: numpy.load(file("seqfaulting_sleep_stage_data.npy"))
 array([(0.0, 'A'), (2.0, 'A'), (4.0, 'A'), ..., (64794.0, 'L'),
        (64796.0, 'L'), (64798.0, 'L')],
       dtype=[('time', '|O4'), ('value', '|S1')])

 The offending file is attached.

Ticket URL: <http://projects.scipy.org/numpy/ticket/1808>
NumPy <http://projects.scipy.org/numpy>
My example project

More information about the NumPy-Tickets mailing list