[Bug 1600345] Re: boost::python::execfile exits with: Error in `python': double free or corruption
Matthias
1600345 at bugs.launchpad.net
Sun Aug 21 14:35:20 UTC 2016
Got the same problem, it's reproducible using a small test program which
tries to run a Python script using boost::python::exec_file(). I can
post a test program if needed, but I'm quite sure the problem doesn't
exist in newer boost::python versions than 1.58.
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to boost1.58 in Ubuntu.
https://bugs.launchpad.net/bugs/1600345
Title:
boost::python::execfile exits with: Error in `python': double free or
corruption
Status in boost1.58 package in Ubuntu:
Confirmed
Bug description:
I have distilled a test program (module) for the problem:
~~~~
#include <boost/python.hpp>
BOOST_PYTHON_MODULE(execfile_bug) {
boost::python::def("execfile", boost::python::exec_file);
}
~~~~
I build and run the test like so:
~~~~
$ g++ -fPIC -I /usr/include/python2.7 -shared -o execfile_bug.so execfile_bug.c -lboost_python
$ python -c 'import execfile_bug; execfile_bug.execfile("/dev/null", {}, {})'
~~~~
The full error, which is printed by the linux C library when it detects the double-free condition:
~~~~
*** Error in `python': double free or corruption (!prev): 0x0000000001aaae70 ***
======= Backtrace: =========
/lib/x86_64-linux-gnu/libc.so.6(+0x77725)[0x7fe3c9e6b725]
/lib/x86_64-linux-gnu/libc.so.6(+0x7ff4a)[0x7fe3c9e73f4a]
/lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7fe3c9e77abc]
/lib/x86_64-linux-gnu/libc.so.6(fclose+0x103)[0x7fe3c9e61313]
python[0x505456]
/usr/lib/x86_64-linux-gnu/libboost_python-py27.so.1.58.0(_ZN5boost6python9exec_fileENS0_3strENS0_3api6objectES3_+0xe8)[0x7fe3c8d897e8]
./execfile_bug.so(_ZN5boost6python6detail6invokeINS0_15to_python_valueIRKNS0_3api6objectEEEPFS5_NS0_3strES5_S5_ENS0_15arg_from_pythonIS9_EENSC_IS5_EESE_EEP7_objectNS1_11invoke_tag_ILb0ELb0EEERKT_RT0_RT1_RT2_RT3_+0x81)[0x7fe3c8fa6da1]
./execfile_bug.so(_ZN5boost6python6detail12caller_arityILj3EE4implIPFNS0_3api6objectENS0_3strES6_S6_ENS0_21default_call_policiesENS_3mpl7vector4IS6_S7_S6_S6_EEEclEP7_objectSG_+0x174)[0x7fe3c8fa6a80]
./execfile_bug.so(_ZN5boost6python7objects23caller_py_function_implINS0_6detail6callerIPFNS0_3api6objectENS0_3strES6_S6_ENS0_21default_call_policiesENS_3mpl7vector4IS6_S7_S6_S6_EEEEEclEP7_objectSH_+0x2f)[0x7fe3c8fa68e1]
/usr/lib/x86_64-linux-gnu/libboost_python-py27.so.1.58.0(_ZNK5boost6python7objects8function4callEP7_objectS4_+0x26d)[0x7fe3c8d7c5cd]
/usr/lib/x86_64-linux-gnu/libboost_python-py27.so.1.58.0(+0x297c8)[0x7fe3c8d7c7c8]
/usr/lib/x86_64-linux-gnu/libboost_python-py27.so.1.58.0(_ZN5boost6python21handle_exception_implENS_9function0IvEE+0x73)[0x7fe3c8d84613]
/usr/lib/x86_64-linux-gnu/libboost_python-py27.so.1.58.0(+0x26999)[0x7fe3c8d79999]
python(PyObject_Call+0x43)[0x4b1153]
python(PyEval_EvalFrameEx+0x5f0a)[0x4ca5ca]
python(PyEval_EvalCodeEx+0x255)[0x4c2e05]
python(PyEval_EvalCode+0x19)[0x4c2ba9]
python(PyRun_StringFlags+0x76)[0x51f196]
python(PyRun_SimpleStringFlags+0x3c)[0x51fe4c]
python(Py_Main+0x3d4)[0x49ded4]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf0)[0x7fe3c9e14830]
python(_start+0x29)[0x49da19]
======= Memory map: ========
00400000-006e7000 r-xp 00000000 fd:01 407584 /usr/bin/python2.7
008e6000-008e8000 r--p 002e6000 fd:01 407584 /usr/bin/python2.7
008e8000-0095f000 rw-p 002e8000 fd:01 407584 /usr/bin/python2.7
0095f000-00982000 rw-p 00000000 00:00 0
01a23000-01b0b000 rw-p 00000000 00:00 0 [heap]
7fe3c4000000-7fe3c4021000 rw-p 00000000 00:00 0
7fe3c4021000-7fe3c8000000 ---p 00000000 00:00 0
7fe3c87bb000-7fe3c87d1000 r-xp 00000000 fd:01 261189 /lib/x86_64-linux-gnu/libgcc_s.so.1
7fe3c87d1000-7fe3c89d0000 ---p 00016000 fd:01 261189 /lib/x86_64-linux-gnu/libgcc_s.so.1
7fe3c89d0000-7fe3c89d1000 rw-p 00015000 fd:01 261189 /lib/x86_64-linux-gnu/libgcc_s.so.1
7fe3c89d1000-7fe3c8b43000 r-xp 00000000 fd:01 393473 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7fe3c8b43000-7fe3c8d43000 ---p 00172000 fd:01 393473 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7fe3c8d43000-7fe3c8d4d000 r--p 00172000 fd:01 393473 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7fe3c8d4d000-7fe3c8d4f000 rw-p 0017c000 fd:01 393473 /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.21
7fe3c8d4f000-7fe3c8d53000 rw-p 00000000 00:00 0
7fe3c8d53000-7fe3c8d9c000 r-xp 00000000 fd:01 408020 /usr/lib/x86_64-linux-gnu/libboost_python-py27.so.1.58.0
7fe3c8d9c000-7fe3c8f9c000 ---p 00049000 fd:01 408020 /usr/lib/x86_64-linux-gnu/libboost_python-py27.so.1.58.0
7fe3c8f9c000-7fe3c8f9d000 r--p 00049000 fd:01 408020 /usr/lib/x86_64-linux-gnu/libboost_python-py27.so.1.58.0
7fe3c8f9d000-7fe3c8f9f000 rw-p 0004a000 fd:01 408020 /usr/lib/x86_64-linux-gnu/libboost_python-py27.so.1.58.0
7fe3c8f9f000-7fe3c8fa9000 r-xp 00000000 fd:01 130575 /root/execfile_bug.so
7fe3c8fa9000-7fe3c91a8000 ---p 0000a000 fd:01 130575 /root/execfile_bug.so
7fe3c91a8000-7fe3c91a9000 r--p 00009000 fd:01 130575 /root/execfile_bug.so
7fe3c91a9000-7fe3c91aa000 rw-p 0000a000 fd:01 130575 /root/execfile_bug.so
7fe3c91aa000-7fe3c94ca000 r--p 00000000 fd:01 391836 /usr/lib/locale/locale-archive
7fe3c94ca000-7fe3c95d2000 r-xp 00000000 fd:01 261160 /lib/x86_64-linux-gnu/libm-2.23.so
7fe3c95d2000-7fe3c97d1000 ---p 00108000 fd:01 261160 /lib/x86_64-linux-gnu/libm-2.23.so
7fe3c97d1000-7fe3c97d2000 r--p 00107000 fd:01 261160 /lib/x86_64-linux-gnu/libm-2.23.so
7fe3c97d2000-7fe3c97d3000 rw-p 00108000 fd:01 261160 /lib/x86_64-linux-gnu/libm-2.23.so
7fe3c97d3000-7fe3c97ec000 r-xp 00000000 fd:01 261351 /lib/x86_64-linux-gnu/libz.so.1.2.8
7fe3c97ec000-7fe3c99eb000 ---p 00019000 fd:01 261351 /lib/x86_64-linux-gnu/libz.so.1.2.8
7fe3c99eb000-7fe3c99ec000 r--p 00018000 fd:01 261351 /lib/x86_64-linux-gnu/libz.so.1.2.8
7fe3c99ec000-7fe3c99ed000 rw-p 00019000 fd:01 261351 /lib/x86_64-linux-gnu/libz.so.1.2.8
7fe3c99ed000-7fe3c99ef000 r-xp 00000000 fd:01 261162 /lib/x86_64-linux-gnu/libutil-2.23.so
7fe3c99ef000-7fe3c9bee000 ---p 00002000 fd:01 261162 /lib/x86_64-linux-gnu/libutil-2.23.so
7fe3c9bee000-7fe3c9bef000 r--p 00001000 fd:01 261162 /lib/x86_64-linux-gnu/libutil-2.23.so
7fe3c9bef000-7fe3c9bf0000 rw-p 00002000 fd:01 261162 /lib/x86_64-linux-gnu/libutil-2.23.so
7fe3c9bf0000-7fe3c9bf3000 r-xp 00000000 fd:01 261169 /lib/x86_64-linux-gnu/libdl-2.23.so
7fe3c9bf3000-7fe3c9df2000 ---p 00003000 fd:01 261169 /lib/x86_64-linux-gnu/libdl-2.23.so
7fe3c9df2000-7fe3c9df3000 r--p 00002000 fd:01 261169 /lib/x86_64-linux-gnu/libdl-2.23.so
7fe3c9df3000-7fe3c9df4000 rw-p 00003000 fd:01 261169 /lib/x86_64-linux-gnu/libdl-2.23.so
7fe3c9df4000-7fe3c9fb4000 r-xp 00000000 fd:01 261168 /lib/x86_64-linux-gnu/libc-2.23.so
7fe3c9fb4000-7fe3ca1b3000 ---p 001c0000 fd:01 261168 /lib/x86_64-linux-gnu/libc-2.23.so
7fe3ca1b3000-7fe3ca1b7000 r--p 001bf000 fd:01 261168 /lib/x86_64-linux-gnu/libc-2.23.so
7fe3ca1b7000-7fe3ca1b9000 rw-p 001c3000 fd:01 261168 /lib/x86_64-linux-gnu/libc-2.23.so
7fe3ca1b9000-7fe3ca1bd000 rw-p 00000000 00:00 0
7fe3ca1bd000-7fe3ca1d5000 r-xp 00000000 fd:01 261167 /lib/x86_64-linux-gnu/libpthread-2.23.so
7fe3ca1d5000-7fe3ca3d4000 ---p 00018000 fd:01 261167 /lib/x86_64-linux-gnu/libpthread-2.23.so
7fe3ca3d4000-7fe3ca3d5000 r--p 00017000 fd:01 261167 /lib/x86_64-linux-gnu/libpthread-2.23.so
7fe3ca3d5000-7fe3ca3d6000 rw-p 00018000 fd:01 261167 /lib/x86_64-linux-gnu/libpthread-2.23.so
7fe3ca3d6000-7fe3ca3da000 rw-p 00000000 00:00 0
7fe3ca3da000-7fe3ca400000 r-xp 00000000 fd:01 261164 /lib/x86_64-linux-gnu/ld-2.23.so
7fe3ca481000-7fe3ca5f7000 rw-p 00000000 00:00 0
7fe3ca5fc000-7fe3ca5ff000 rw-p 00000000 00:00 0
7fe3ca5ff000-7fe3ca600000 r--p 00025000 fd:01 261164 /lib/x86_64-linux-gnu/ld-2.23.so
7fe3ca600000-7fe3ca601000 rw-p 00026000 fd:01 261164 /lib/x86_64-linux-gnu/ld-2.23.so
7fe3ca601000-7fe3ca602000 rw-p 00000000 00:00 0
7ffc6a792000-7ffc6a7b3000 rw-p 00000000 00:00 0 [stack]
7ffc6a7df000-7ffc6a7e1000 r--p 00000000 00:00 0 [vvar]
7ffc6a7e1000-7ffc6a7e3000 r-xp 00000000 00:00 0 [vdso]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
~~~~
I believe this may be fixed upstream in version 1.59.0. I think it
was introduced at
https://github.com/boostorg/python/commit/fe24ab9dd5440562e27422cd38f7de03356bfd16
ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: libboost-python1.58.0 1.58.0+dfsg-5ubuntu3.1
ProcVersionSignature: Ubuntu 4.4.0-28.47-generic 4.4.13
Uname: Linux 4.4.0-28-generic x86_64
ApportVersion: 2.20.1-0ubuntu2.1
Architecture: amd64
Date: Fri Jul 8 15:15:50 2016
Dependencies:
gcc-5-base 5.3.1-14ubuntu2.1
gcc-6-base 6.0.1-0ubuntu1
libc6 2.23-0ubuntu3
libgcc1 1:6.0.1-0ubuntu1
libstdc++6 5.3.1-14ubuntu2.1
ProcEnviron:
TERM=xterm-256color
PATH=(custom, no user)
XDG_RUNTIME_DIR=<set>
LANG=en_US.UTF-8
SHELL=/bin/bash
SourcePackage: boost1.58
UpgradeStatus: No upgrade log present (probably fresh install)
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/boost1.58/+bug/1600345/+subscriptions
More information about the foundations-bugs
mailing list