8000 Segmentation Fault when running numpy test (Trac #1815) · Issue #2408 · numpy/numpy · GitHub
[go: up one dir, main page]

Skip to content

Segmentation Fault when running numpy test (Trac #1815) #2408

@numpy-gitbot

Description

@numpy-gitbot

Original ticket http://projects.scipy.org/numpy/ticket/1815 on 2011-04-30 by trac user alex_lai, assigned to unknown.

Hi experts,
I’m wondering if anyone would look into this issue. While testing numpy package, Python crashed with the following error:

sbtorsvr391:~ $ cd /home/dcottr/local/tests
sbtorsvr391:/local/tests $ export PYTHONPATH=$PYTHONPATH:/local/lib/python3.1/site-packages

sbtorsvr391:~/local/tests $ /usr/local/bin/python3 -c "import numpy; numpy.test()"
Running unit tests for numpy
NumPy version 1.5.1
NumPy is installed in /home/dcottr/local/lib/python3.1/site-packages/numpy

Python version 3.1.2 (r312:79147, Mar 23 2010, 02:42:06) [GCC 3.4.6]
nose version 1.0.0
..S...............................................................................................................................................S........Warning: invalid value encountered in isfinite
............................................................................................................................................................................................Warning: invalid value encountered in isinf
Warning: invalid value encountered in isinf
......................................................................................................SSS........................K...........................................................K.....................................................................................................................................................F.F....................K.............................................................................................K...SK.F.......S...........................................................................................Segmentation Fault (core dumped)

        Below is the stack trace from the core dump:

mdb core_sbtorsvr391_python3_10439_5000_1304101376_11246

Loading modules: [ libc.so.1 libavl.so.1 libuutil.so.1 ld.so.1 ]

::stack
libc.so.1strlen+0x50(fba55238, ffbf9ef8, ffbf9761, 0, 0, 0) libc.so.1sprintf+0x40(ffbf9f18, 7fffffff, 7ffffc00, 2, 2, 1b74cc)
test_array_from_pyobj_ext.soarray_from_pyobj+0x4e0(6, 17d3ec0, 1, 7, 16176c0, ff13a5a0) test_array_from_pyobj_ext.sof2py_rout_wrap_call+0xbc(1, 1, 0, 17f000, fffffffe, fba65b94)
PyCFunction_Call+0x90(15ff350, 1841900, 1844e90, 0, 1, 183df38)
PyEval_EvalFrameEx+0x4f10(0, ffbfa1c0, 1615770, 1, 16491b0, 15ff350)
PyEval_EvalCodeEx+0x874(1615770, 161ff60, 0, 160cf3c, 5, 0)
function_call+0x8c(162e270, 160cf30, 0, 17f000, fffffffe, 40)
PyObject_Call+0x44(162e270, 160cf30, 0, 160cf3c, 4, 16176c0)
method_call+0x8c(162e270, 18418d0, 0, 1849f60, 1, 3f)
PyObject_Call+0x44(176b620, 18418d0, 0, 2ed5c, 2efe0, 176b620)
slot_tp_init+0x7c(176b620, 18418d0, 0, 2, 1, 16296d0)
type_call+0xdc(16521a0, 18418d0, 0, 17f000, fffffffe, 3e)
PyObject_Call+0x44(16521a0, 18418d0, 0, 18418d8, 1820030, 183ddbc)
PyEval_EvalFrameEx+0x37b4(0, ffbfa688, 162e9b0, 1, 16259c0, 16521a0)
PyEval_EvalFrameEx+0x5c98(0, ffbfa788, 16154e8, 1, 1626030, 162eb28)
PyEval_EvalFrameEx+0x5c98(0, ffbfa888, 52b260, 1, 57ec00, 162e468)
PyEval_EvalCodeEx+0x874(52b260, 5229c0, 0, 1808834, 2, 1ac03c)
function_call+0x8c(5a36a8, 1808828, 0, 17f000, fffffffe, 3a)
PyObject_Call+0x44(5a36a8, 1808828, 1825a50, 19b000, 163ab30, fe36c4)
PyEval_EvalFrameEx+0x13bc(0, fe36c8, 52b2f0, 1, 526d50, 1808828)
PyEval_EvalCodeEx+0x874(52b2f0, 1, 0, 1808c1c, 2, 0)
function_call+0x8c(5a3738, 1808c10, 0, 17f000, fffffffe, 38)
PyObject_Call+0x44(5a3738, 1808c10, 0, 1808c10, 1, 1849e50)
method_call+0x8c(5a3738, 1630450, 0, 1630440, 9, 37)
PyObject_Call+0x44(1612850, 1630450, 0, 193618, 2, 1612850)
slot_tp_call+0x7c(163ab30, 1630450, 0, 17f000, fffffffe, 36)
PyObject_Call+0x44(163ab30, 1630450, 0, 1630458, 1849e50, fe355c)
PyEval_EvalFrameEx+0x37b4(0, ffbfaf78, b1e0f8, 1, a873a0, 163ab30)
PyEval_EvalFrameEx+0x5c98(0, ffbfb078, b1e0b0, 1, b1db58, b1ed20)
PyEval_EvalCodeEx+0x874(b1e0b0, b0e810, 0, 180b67c, 2, 1ac03c)
function_call+0x8c(b1ecd8, 180b670, 0, 17f000, fffffffe, 33)
PyObject_Call+0x44(b1ecd8, 180b670, 18258a0, 19b000, 163abf0, fe2f3c)
PyEval_EvalFrameEx+0x13bc(0, fe2f40, b1ccc8, 1, b1a350, 180b670)
PyEval_EvalCodeEx+0x874(b1ccc8, 1, 0, 1844dac, 2, 0)
function_call+0x8c(b1ea50, 1844da0, 0, 17f000, fffffffe, 31)
PyObject_Call+0x44(b1ea50, 1844da0, 0, 1844da0, 1, e4ddf0)
method_call+0x8c(b1ea50, 16306d0, 0, 16306c0, b, 30)
PyObject_Call+0x44(176b5a8, 16306d0, 0, 1ab728, 18f708, 176b5a8)
slot_tp_call+0x7c(163abf0, 16306d0, 0, 17f000, fffffffe, 2f)
PyObject_Call+0x44(163abf0, 16306d0, 0, 16306d8, e4ddf0, 18374d8)
PyEval_EvalFrameEx+0x37b4(0, ffbfb768, b2e4e8, 1, ad9ce8, 163abf0)
PyEval_EvalCodeEx+0x874(b2e4e8, b1b4b0, 0, 18087bc, 2, 1ac03c)
function_call+0x8c(a00390, 18087b0, 0, 17f000, fffffffe, 2d)
PyObject_Call+0x44(a00390, 18087b0, 176c810, 19b000, 165c450, 182ea24)
PyEval_EvalFrameEx+0x13bc(0, 182ea28, b2e380, 1, b1ad50, 18087b0)
PyEval_EvalCodeEx+0x874(b2e380, 1, 0, 176b8ac, 2, 0)
function_call+0x8c(a002b8, 176b8a0, 0, 17f000, fffffffe, 2b)
PyObject_Call+0x44(a002b8, 176b8a0, 0, 176b8a0, 1, e4ddf0)
method_call+0x8c(a002b8, 16141b0, 0, 16141a0, 9, 2a)
PyObject_Call+0x44(1612c10, 16141b0, 0, 1ab728, 18f708, 1612c10)
slot_tp_call+0x7c(165c450, 16141b0, 0, 17f000, fffffffe, 29)
PyObject_Call+0x44(165c450, 16141b0, 0, 16141b8, e4ddf0, 1645cf0)
PyEval_EvalFrameEx+0x37b4(0, ffbfbe58, b2e4e8, 1, ad9ce8, 165c450)
PyEval_EvalCodeEx+0x874(b2e4e8, b1b4b0, 0, 16296a4, 2, 1ac03c)
function_call+0x8c(a00390, 1629698, 0, 17f000, fffffffe, 27)
PyObject_Call+0x44(a00390, 1629698, 161f8a0, 19b000, 176a270, 124868c)
PyEval_EvalFrameEx+0x13bc(0, 1248690, b2e380, 1, b1ad50, 1629698)
PyEval_EvalCodeEx+0x874(b2e380, 1, 0, 16127bc, 2, 0)
::quit

The C library used by Python is as follows:

sbtorsvr391:~/local/tests $ ldd /usr/local/bin/python3|grep libc
libc.so.1 => /lib/libc.so.1
/platform/SUNW,Sun-Fire-V490/lib/libc_psr.so.1

sbtorsvr391:~ $ ls -l /lib/libc.so.1
-rwxr-xr-x 1 root bin 1640776 Aug 10 2010 /lib/libc.so.1

sbtorsvr391:~ $ pkgchk -l -p /lib/libc.so.1
NOTE: Couldn't lock the package database.
Pathname: /lib/libc.so.1
Type: regular file
Expected mode: 0755
Expected owner: root
Expected group: bin
Expected file size (bytes): 1640776
Expected sum(1) of contents: 50250
Expected last modification: Aug 10 13:55:34 2010
Referenced by the following packages:
SUNWcslr
Current status: installed

sbtorsvr391:~ $ pkginfo -l SUNWcslr
PKGINST: SUNWcslr
NAME: Core Solaris Libraries (Root)
CATEGORY: system
ARCH: sparc
VERSION: 11.10.0,REV=2005.01.21.15.53
BASEDIR: /
VENDOR: Sun Microsystems, Inc.
DESC: core software for a specific instruction-set architecture
PSTAMP: on10-patch20100511083333
INSTDATE: Jan 22 2011 16:10
HOTLINE: Please contact your local service provider
STATUS: completely installed
FILES: 245 installed pathnames
2 shared pathnames
5 directories
133 executables
34303 blocks used (approx)

The same problem doesn't occur when the command is run as root.

I opened a ticket with Python support. they responsed with the comment:

The issue is actually in numpy. In numpy/f2py/src/fortranobject.c, function array_from_pyobj(), there is::

    sprintf(mess,"failed to initialize intent(inout|inplace|cache) array"
            " -- input must be array but got %s",
            PyString_AsString(PyObject_Str(PyObject_Type(obj)))
            );

(In numpy headers, PyString_AsString is aliased to PyBytes_AsString.) Besides the reference leaks, this function will fail when given the unicode string returned by PyObject_Str(), and sprintf receives the null string...

Please report this to numpy.

I'm hoping I will find answer to this issue here...

Thanks in advance,

Alex

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0