A quick scan of the tickets did not show me anything like the following, but I might have missed it. The attached script generates a segfault on my ubuntu feisty system with svn numpy. Running inside of ipython, the segfault occurs upon exiting ipython, not upon running the script. Running the script from the command line gives the attached trace. Eric efiring@manini:~/test$ python numpysegfault.py *** glibc detected *** python: free(): invalid next size (fast): 0x08388d98 *** ======= Backtrace: ========= /lib/tls/i686/cmov/libc.so.6[0xb7dbc7cd] /lib/tls/i686/cmov/libc.so.6(cfree+0x90)[0xb7dbfe30] /usr/local/lib/python2.5/site-packages/numpy/core/multiarray.so[0xb7bd414e] python[0x8085269] python(PyDict_SetItem+0x6e)[0x8086bae] python(_PyModule_Clear+0x158)[0x8088808] python(PyImport_Cleanup+0x153)[0x80dcba3] python(Py_Finalize+0xbf)[0x80e8d9f] python(Py_Main+0x4d1)[0x8058e41] python(main+0x22)[0x8058862] /lib/tls/i686/cmov/libc.so.6(__libc_start_main+0xdc)[0xb7d6aebc] python[0x80587b1] ======= Memory map: ======== 08048000-0813f000 r-xp 00000000 08:05 212471 /usr/bin/python2.5 0813f000-08164000 rw-p 000f6000 08:05 212471 /usr/bin/python2.5 08164000-08430000 rw-p 08164000 00:00 0 [heap] b6c00000-b6c21000 rw-p b6c00000 00:00 0 b6c21000-b6d00000 ---p b6c21000 00:00 0 b6d02000-b6d0d000 r-xp 00000000 08:05 586432 /lib/libgcc_s.so.1 b6d0d000-b6d0e000 rw-p 0000a000 08:05 586432 /lib/libgcc_s.so.1 b6d20000-b6d25000 r-xp 00000000 08:05 342572 /usr/lib/python2.5/lib-dynload/_struct.so b6d25000-b6d26000 rw-p 00005000 08:05 342572 /usr/lib/python2.5/lib-dynload/_struct.so b6d26000-b6d39000 r-xp 00000000 08:05 853437 /usr/local/lib/python2.5/site-packages/ctypes-1.0.2-py2.5-linux-i686.egg/_ctypes.so b6d39000-b6d3b000 rw-p 00013000 08:05 853437 /usr/local/lib/python2.5/site-packages/ctypes-1.0.2-py2.5-linux-i686.egg/_ctypes.so b6d3b000-b6d6d000 r-xp 00000000 08:05 750591 /usr/local/lib/python2.5/site-packages/numpy/random/mtrand.so b6d6d000-b6d71000 rw-p 00032000 08:05 750591 /usr/local/lib/python2.5/site-packages/numpy/random/mtrand.so b6d71000-b6d7a000 r-xp 00000000 08:05 752453 /usr/local/lib/python2.5/site-packages/numpy/fft/fftpack_lite.so b6d7a000-b6d7b000 rw-p 00008000 08:05 752453 /usr/local/lib/python2.5/site-packages/numpy/fft/fftpack_lite.so b6d7b000-b6e1f000 r-xp 00000000 08:05 752470 /usr/local/lib/python2.5/site-packages/numpy/linalg/lapack_lite.so b6e1f000-b6e20000 rw-p 000a3000 08:05 752470 /usr/local/lib/python2.5/site-packages/numpy/linalg/lapack_lite.so b6e20000-b6e87000 rw-p b6e20000 00:00 0 b6e87000-b6e8a000 r-xp 00000000 08:05 752451 /usr/local/lib/python2.5/site-packages/numpy/lib/_compiled_base.so b6e8a000-b6e8b000 rw-p 00002000 08:05 752451 /usr/local/lib/python2.5/site-packages/numpy/lib/_compiled_base.so b6e8b000-b6ea5000 r-xp 00000000 08:05 752464 /usr/local/lib/python2.5/site-packages/numpy/core/scalarmath.so b6ea5000-b6ea6000 rw-p 0001a000 08:05 752464 /usr/local/lib/python2.5/site-packages/numpy/core/scalarmath.so b6ea6000-b6ea9000 r-xp 00000000 08:05 344739 /usr/lib/python2.5/lib-dynload/mmap.so b6ea9000-b6eaa000 rw-p 00003000 08:05 344739 /usr/lib/python2.5/lib-dynload/mmap.so b6eaa000-b6ead000 r-xp 00000000 08:05 342574 /usr/lib/python2.5/lib-dynload/cStringIO.so b6ead000-b6eae000 rw-p 00003000 08:05 342574 /usr/lib/python2.5/lib-dynload/cStringIO.so b6eae000-b6ec7000 r-xp 00000000 08:05 214313 /usr/lib/libg2c.so.0.0.0 b6ec7000-b6ec8000 rw-p 00019000 08:05 214313 /usr/lib/libg2c.so.0.0.0 b6ec8000-b6ed5000 rw-p b6ec8000 00:00 0 b6ed5000-b74ac000 r-xp 00000000 08:05 343193 /usr/lib/atlas/sse2/libblas.so.3.0 b74ac000-b74b1000 rw-p 005d6000 08:05 343193 /usr/lib/atlas/sse2/libblas.so.3.0 b74b1000-b79fa000 r-xp 00000000 08:05 343194 /usr/lib/atlas/sse2/liblapack.so.3.0 b79fa000-b79fd000 rw-p 00549000 08:05 343194 /usr/lib/atlas/sse2/liblapack.so.3.0 b79fd000-b7b01000 rw-p b79fd000 00:00 0 b7b01000-b7b12000 r-xp 00000000 08:05 344738 /usr/lib/python2.5/lib-dynload/cPickle.so b7b12000-b7b13000 rw-p 00010000 08:05 344738 /usr/lib/python2.5/lib-dynload/cPickle.so b7b13000-b7b18000 r-xp 00000000 08:05 749369 /usr/local/lib/python2.5/site-packages/numpy/core/_dotblas.so b7b18000-b7b19000 rw-p 00004000 08:05 749369 /usr/local/lib/python2.5/site-packages/numpy/core/_dotblas.so b7b19000-b7b7a000 rw-p b7b19000 00:00 0 b7b7a000-b7ba0000 r-xp 00000000 08:05 749367 /usr/local/lib/python2.5/site-packages/numpy/core/umath.so b7ba0000-b7ba3000 rw-p 00025000 08:05 749367 /usr/local/lib/python2.5/site-packages/numpy/core/umath.so b7ba3000-b7ba4000 rw-p b7ba3000 00:00 0 b7ba4000-b7bfe000 r-xp 00000000 08:05 749349 /usr/local/lib/python2.5/site-packages/numpy/core/multiarray.so b7bfe000-b7c04000 rw-p 00059000 08:05 749349 /usr/local/lib/python2.5/site-packages/numpy/core/multiarray.so b7c04000-b7c05000 rw-p b7c04000 00:00 0 b7c05000-b7c4a000 r-xp 00000000 08:05 586444 /lib/libncursesw.so.5.5 b7c4a000-b7c52000 rw-p 00045000 08:05 586444 /lib/libncursesw.so.5.5 b7c52000-b7c53000 rw-p b7c52000 00:00 0 b7c55000-b7c64000 r-xp 00000000 08:05 752457 /usr/local/lib/python2.5/site-packages/numpy/core/_sort.so b7c64000-b7c65000 rw-p 0000e000 08:05 752457 /usr/local/lib/python2.5/site-packages/numpy/core/_sort.so b7c65000-b7c74000 r-xp 00000000 08:05 344754 /usr/lib/python2.5/lib-dynload/_curses.so b7c74000-b7c75000 rw-p 0000f000 08:05 344754 /usr/lib/python2.5/lib-dynload/_curses.so b7c75000-b7c77000 r-xp 00000000 08:05 342580 /usr/lib/python2.5/lib-dynload/fcntl.so b7c77000-b7c78000 rw-p 00002000 08:05 342580 /usr/lib/python2.5/lib-dynload/fcntl.so b7c78000-b7c7c000 r-xp 00000000 08:05 342578 /usr/lib/python2.5/lib-dynload/binascii.so b7c7c000-b7c7d000 rw-p 00003000 08:05 342578 /usr/lib/python2.5/lib-dynload/binascii.so b7c7d000-b7c80000 r-xp 00000000 08:05 342586 /usr/lib/python2.5/lib-dynload/math.so b7c80000-b7c81000 rw-p 00002000 08:05 342586 /usr/lib/python2.5/lib-dynload/math.so b7c81000-b7c85000 r-xp 00000000 08:05 342592 /usr/lib/python2.5/lib-dynload/strop.so b7c85000-b7c87000 rw-p 00003000 08:05 342592 /usr/lib/python2.5/lib-dynload/strop.so b7c87000-b7c89000 r-xp 00000000 08:05 344730 /usr/lib/python2.5/lib-dynload/_heapq.so b7c89000-b7c8b000 rw-p 00002000 08:05 344730 /usr/lib/python2.5/lib-dynload/_heapq.so b7c8b000-b7c8e000 r-xp 00000000 08:05 342596 /usr/lib/python2.5/lib-dynload/time.so b7c8e000-b7c90000 rw-p 00002000 08:05 342596 /usr/lib/python2.5/lib-dynload/time.so b7c90000-b7c97000 r--s 00000000 08:05 782059 /usr/lib/gconv/gconv-modules.cache b7c97000-b7cd2000 r--p 00000000 08:05 261980 /usr/lib/locale/en_US.utf8/LC_CTYPE b7cd2000-b7d55000 rw-p b7cd2000 00:00 0 b7d55000-b7e90000 r-xp 00000000 08:05 620099 /lib/tls/i686/cmov/libc-2.5.so b7e90000-b7e91000 r--p 0013b000 08:05 620099 /lib/tls/i686/cmov/libc-2.5.so b7e91000-b7e93000 rw-p 0013c000 08:05 620099 /lib/tls/i686/cmov/libc-2.5.so b7e93000-b7e96000 rw-p b7e93000 00:00 0 b7e96000-b7ebb000 r-xp 00000000 08:05 620107 /lib/tls/i686/cmov/libm-2.5.so b7ebb000-b7ebd000 rw-p 00024000 08:05 620107 /lib/tls/i686/cmov/libm-2.5.so b7ebd000-b7ebf000 r-xp 00000000 08:05 620133 /lib/tls/i686/cmov/libutil-2.5.so b7ebf000-b7ec1000 rw-p 00001000 08:05 620133 /lib/tls/i686/cmov/libutil-2.5.so b7ec1000-b7ec2000 rw-p b7ec1000 00:00 0 b7ec2000-b7ec4000 r-xp 00000000 08:05 620105 /lib/tls/i686/cmov/libdl-2.5.so b7ec4000-b7ec6000 rw-p 00001000 08:05 620105 /lib/tls/i686/cmov/libdl-2.5.so b7ec6000-b7ed9000 r-xp 00000000 08:05 620125 /lib/tls/i686/cmov/libpthread-2.5.so b7ed9000-b7edb000 rw-p 00013000 08:05 620125 /lib/tls/i686/cmov/libpthread-2.5.so b7edb000-b7edd000 rw-p b7edb000 00:00 0 b7edd000-b7edf000 r-xp 00000000 08:05 342568 /usr/lib/python2.5/lib-dynload/_random.so b7edf000-b7ee0000 rw-p 00002000 08:05 342568 /usr/lib/python2.5/lib-dynload/_random.so b7ee0000-b7ee1000 r-xp 00000000 08:05 344729 /usr/lib/python2.5/lib-dynload/_bisect.so b7ee1000-b7ee2000 rw-p 00001000 08:05 344729 /usr/lib/python2.5/lib-dynload/_bisect.so b7ee2000-b7ee7000 r-xp 00000000 08:05 342588 /usr/lib/python2.5/lib-dynload/operator.so b7ee7000-b7ee8000 rw-p 00005000 08:05 342588 /usr/lib/python2.5/lib-dynload/operator.so b7ee8000-b7eed000 r-xp 00000000 08:05 342584 /usr/lib/python2.5/lib-dynload/itertools.so b7eed000-b7eef000 rw-p 00005000 08:05 342584 /usr/lib/python2.5/lib-dynload/itertools.so b7eef000-b7ef1000 rw-p b7eef000 00:00 0 b7ef1000-b7f0a000 r-xp 00000000 08:05 586389 /lib/ld-2.5.so b7f0a000-b7f0c000 rw-p 00019000 08:05 586389 /lib/ld-2.5.so bf997000-bf9be000 rwxp bf997000 00:00 0 [stack] bf9be000-bf9bf000 rw-p bf9be000 00:00 0 ffffe000-fffff000 r-xp 00000000 00:00 0 [vdso] Aborted (core dumped)
su, 2007-11-04 kello 11:13 -1000, Eric Firing kirjoitti:
A quick scan of the tickets did not show me anything like the following, but I might have missed it. The attached script generates a segfault on my ubuntu feisty system with svn numpy. Running inside of ipython, the segfault occurs upon exiting ipython, not upon running the script. Running the script from the command line gives the attached trace.
Also on numpy 1.0.3.1, self-built on Ubuntu gutsy. Valgrind shows this: $ valgrind --suppressions=/home/pauli/.valgrind/valgrind-python.supp python -c 'import numpy; u = numpy.array([]); g = numpy.array([True, True]); u[g] = 0' ==17983== Memcheck, a memory error detector. ==17983== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al. ==17983== Using LibVEX rev 1732, a library for dynamic binary translation. ==17983== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP. ==17983== Using valgrind-3.2.3-Debian, a dynamic binary instrumentation framework. ==17983== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al. ==17983== For more details, rerun with: -v ==17983== ==17983== Invalid write of size 4 ==17983== at 0x46275AF: DOUBLE_copyswap (arraytypes.inc.src:999) ==17983== by 0x4655C80: iter_ass_subscript (arrayobject.c:9348) ==17983== by 0x4658620: array_ass_sub (arrayobject.c:2971) ==17983== by 0x80C550D: PyEval_EvalFrameEx (ceval.c:1497) ==17983== by 0x80CA114: PyEval_EvalCodeEx (ceval.c:2831) ==17983== by 0x80CA186: PyEval_EvalCode (ceval.c:494) ==17983== by 0x80EA371: PyRun_StringFlags (pythonrun.c:1273) ==17983== by 0x80EA434: PyRun_SimpleStringFlags (pythonrun.c:900) ==17983== by 0x8058DBD: Py_Main (main.c:512) ==17983== by 0x80588C1: main (python.c:23) ==17983== Address 0x433C390 is 0 bytes after a block of size 8 alloc'd ==17983== at 0x4021765: malloc (vg_replace_malloc.c:149) ==17983== by 0x4634A77: PyArray_NewFromDescr (arrayobject.c:5430) ==17983== by 0x463BA49: PyArray_FromAny (arrayobject.c:7428) ==17983== by 0x464C025: PyArray_CheckFromAny (arrayobject.c:8607) ==17983== by 0x464C261: _array_fromobject (multiarraymodule.c:5640) ==17983== by 0x80C8EEB: PyEval_EvalFrameEx (ceval.c:3564) ==17983== by 0x80CA114: PyEval_EvalCodeEx (ceval.c:2831) ==17983== by 0x80CA186: PyEval_EvalCode (ceval.c:494) ==17983== by 0x80EA371: PyRun_StringFlags (pythonrun.c:1273) ==17983== by 0x80EA434: PyRun_SimpleStringFlags (pythonrun.c:900) ==17983== by 0x8058DBD: Py_Main (main.c:512) ==17983== by 0x80588C1: main (python.c:23) ==17983== ==17983== Invalid write of size 4 ==17983== at 0x46275B4: DOUBLE_copyswap (arraytypes.inc.src:999) ==17983== by 0x4655C80: iter_ass_subscript (arrayobject.c:9348) ==17983== by 0x4658620: array_ass_sub (arrayobject.c:2971) ==17983== by 0x80C550D: PyEval_EvalFrameEx (ceval.c:1497) ==17983== by 0x80CA114: PyEval_EvalCodeEx (ceval.c:2831) ==17983== by 0x80CA186: PyEval_EvalCode (ceval.c:494) ==17983== by 0x80EA371: PyRun_StringFlags (pythonrun.c:1273) ==17983== by 0x80EA434: PyRun_SimpleStringFlags (pythonrun.c:900) ==17983== by 0x8058DBD: Py_Main (main.c:512) ==17983== by 0x80588C1: main (python.c:23) ==17983== Address 0x433C394 is 4 bytes after a block of size 8 alloc'd ==17983== at 0x4021765: malloc (vg_replace_malloc.c:149) ==17983== by 0x4634A77: PyArray_NewFromDescr (arrayobject.c:5430) ==17983== by 0x463BA49: PyArray_FromAny (arrayobject.c:7428) ==17983== by 0x464C025: PyArray_CheckFromAny (arrayobject.c:8607) ==17983== by 0x464C261: _array_fromobject (multiarraymodule.c:5640) ==17983== by 0x80C8EEB: PyEval_EvalFrameEx (ceval.c:3564) ==17983== by 0x80CA114: PyEval_EvalCodeEx (ceval.c:2831) ==17983== by 0x80CA186: PyEval_EvalCode (ceval.c:494) ==17983== by 0x80EA371: PyRun_StringFlags (pythonrun.c:1273) ==17983== by 0x80EA434: PyRun_SimpleStringFlags (pythonrun.c:900) ==17983== by 0x8058DBD: Py_Main (main.c:512) ==17983== by 0x80588C1: main (python.c:23) ==17983== ==17983== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 1395 from 8) ==17983== malloc/free: in use at exit: 2,042,554 bytes in 691 blocks. ==17983== malloc/free: 73,854 allocs, 73,163 frees, 35,375,892 bytes allocated. ==17983== For counts of detected errors, rerun with: -v ==17983== searching for pointers to 691 not-freed blocks. ==17983== checked 3,292,072 bytes. ==17983== ==17983== LEAK SUMMARY: ==17983== definitely lost: 0 bytes in 0 blocks. ==17983== possibly lost: 36,150 bytes in 57 blocks. ==17983== still reachable: 2,006,404 bytes in 634 blocks. ==17983== suppressed: 0 bytes in 0 blocks. ==17983== Rerun with --leak-check=full to see details of leaked memory.
participants (2)
-
Eric Firing -
Pauli Virtanen