Simon Ruderich <si...@ruderich.org> wrote: > On Fri, Jun 07, 2013 at 05:55:06PM +0900, Jun T. wrote: >> Thank you for your reply; it is always nice to hear I'm not alone. >> And thank you for your test. >> >> I did some test by myself and noticed that if I configure with >> >> --enable-pythoninterp=dynamic and/or --enable-python3interp=dynamic >> >> then test86 runs fine without the PY_SSIZE_T_CLEAN fix. >> I've checked that adding the fix does not break this already-working >> dynamic build. > > Hello, > > I also had a crash on test86 on Debian Wheezy (Python 2.7.3, Vim > 7.3.1152). While running the test under valgrind I noticed many > invalid memory accesses on already freed memory. Below is a short > excerpt: > > ==24205== Invalid read of size 4 > ==24205== at 0x67CDCA2: PyObject_Free (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6720D7A: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675368E: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6753D3B: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675F1F2: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675425C: PyImport_ImportModuleLevel (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66E7B9E: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x677AD3D: PyObject_Call (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x677B646: PyEval_CallObjectWithKeywords (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x668FC82: PyEval_EvalFrameEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66952E7: PyEval_EvalCodeEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6695421: PyEval_EvalCode (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66EC6CC: PyImport_ExecCodeModuleEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6753677: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6753D3B: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675F1F2: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675425C: PyImport_ImportModuleLevel (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66E7B9E: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x677AD3D: PyObject_Call (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x677B646: PyEval_CallObjectWithKeywords (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x668FC82: PyEval_EvalFrameEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66952E7: PyEval_EvalCodeEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6695421: PyEval_EvalCode (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66EC6CC: PyImport_ExecCodeModuleEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6753677: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6753D3B: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675F1F2: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675425C: PyImport_ImportModuleLevel (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66E7B9E: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x677AD3D: PyObject_Call (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x677B646: PyEval_CallObjectWithKeywords (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x668FC82: PyEval_EvalFrameEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66952E7: PyEval_EvalCodeEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6695421: PyEval_EvalCode (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66EC6CC: PyImport_ExecCodeModuleEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6753677: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6753D3B: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675F1F2: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675425C: PyImport_ImportModuleLevel (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66E7B9E: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x677AD3D: PyObject_Call (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66D815A: PyObject_CallFunction (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66DE9C9: PyImport_Import (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66E04D9: PyImport_ImportModule (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66A09B3: Py_InitializeEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x2D2DC0: DoPyCommand (if_python.c:872) > ==24205== by 0x2D4FA0: ex_python (if_python.c:1030) > ==24205== by 0x1B641A: do_cmdline (ex_docmd.c:2689) > ==24205== by 0x2209A9: nv_colon (normal.c:5457) > ==24205== by 0x226F96: normal_cmd (normal.c:1200) > ==24205== Address 0x820d020 is 1,040 bytes inside a block of size 2,731 > free'd > ==24205== at 0x4C27D4E: free (in > /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) > ==24205== by 0x671C00A: PyMarshal_ReadLastObjectFromFile (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675344D: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6753D3B: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675F1F2: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675425C: PyImport_ImportModuleLevel (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66E7B9E: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x677AD3D: PyObject_Call (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x677B646: PyEval_CallObjectWithKeywords (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x668FC82: PyEval_EvalFrameEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66952E7: PyEval_EvalCodeEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6695421: PyEval_EvalCode (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66EC6CC: PyImport_ExecCodeModuleEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6753677: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6753D3B: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675F1F2: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675425C: PyImport_ImportModuleLevel (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66E7B9E: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x677AD3D: PyObject_Call (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x677B646: PyEval_CallObjectWithKeywords (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x668FC82: PyEval_EvalFrameEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66952E7: PyEval_EvalCodeEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6695421: PyEval_EvalCode (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66EC6CC: PyImport_ExecCodeModuleEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6753677: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6753D3B: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675F1F2: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675425C: PyImport_ImportModuleLevel (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66E7B9E: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x677AD3D: PyObject_Call (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x677B646: PyEval_CallObjectWithKeywords (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x668FC82: PyEval_EvalFrameEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66952E7: PyEval_EvalCodeEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6695421: PyEval_EvalCode (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66EC6CC: PyImport_ExecCodeModuleEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6753677: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6753D3B: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675F1F2: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675425C: PyImport_ImportModuleLevel (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66E7B9E: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x677AD3D: PyObject_Call (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66D815A: PyObject_CallFunction (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66DE9C9: PyImport_Import (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66E04D9: PyImport_ImportModule (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66A09B3: Py_InitializeEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x2D2DC0: DoPyCommand (if_python.c:872) > ==24205== by 0x2D4FA0: ex_python (if_python.c:1030) > ==24205== by 0x1B641A: do_cmdline (ex_docmd.c:2689) > ==24205== by 0x2209A9: nv_colon (normal.c:5457) > ==24205== by 0x226F96: normal_cmd (normal.c:1200) > > There are also a few uninitialized memory warnings (not sure if > they are related): > > ==24205== Conditional jump or move depends on uninitialised value(s) > ==24205== at 0x67CDCAB: PyObject_Free (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x67AA2A2: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6720DEA: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675368E: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6753D3B: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675F1F2: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675425C: PyImport_ImportModuleLevel (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66E7B9E: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x677AD3D: PyObject_Call (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x677B646: PyEval_CallObjectWithKeywords (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x668FC82: PyEval_EvalFrameEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66952E7: PyEval_EvalCodeEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6695421: PyEval_EvalCode (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66EC6CC: PyImport_ExecCodeModuleEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6753677: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6753D3B: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675F1F2: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675425C: PyImport_ImportModuleLevel (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66E7B9E: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x677AD3D: PyObject_Call (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x677B646: PyEval_CallObjectWithKeywords (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x668FC82: PyEval_EvalFrameEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66952E7: PyEval_EvalCodeEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6695421: PyEval_EvalCode (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66EC6CC: PyImport_ExecCodeModuleEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6753677: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6753D3B: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675F1F2: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675425C: PyImport_ImportModuleLevel (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66E7B9E: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x677AD3D: PyObject_Call (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x677B646: PyEval_CallObjectWithKeywords (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x668FC82: PyEval_EvalFrameEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66952E7: PyEval_EvalCodeEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6695421: PyEval_EvalCode (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66EC6CC: PyImport_ExecCodeModuleEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6753677: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6753D3B: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675F1F2: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675425C: PyImport_ImportModuleLevel (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66E7B9E: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x677AD3D: PyObject_Call (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66D815A: PyObject_CallFunction (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66DE9C9: PyImport_Import (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66E04D9: PyImport_ImportModule (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66A09B3: Py_InitializeEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x2D2DC0: DoPyCommand (if_python.c:872) > ==24205== by 0x2D4FA0: ex_python (if_python.c:1030) > ==24205== by 0x1B641A: do_cmdline (ex_docmd.c:2689) > ==24205== by 0x2209A9: nv_colon (normal.c:5457) > ==24205== > ==24205== Use of uninitialised value of size 8 > ==24205== at 0x67CDCC3: PyObject_Free (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x67AA2A2: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6720DEA: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675368E: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6753D3B: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675F1F2: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675425C: PyImport_ImportModuleLevel (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66E7B9E: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x677AD3D: PyObject_Call (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x677B646: PyEval_CallObjectWithKeywords (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x668FC82: PyEval_EvalFrameEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66952E7: PyEval_EvalCodeEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6695421: PyEval_EvalCode (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66EC6CC: PyImport_ExecCodeModuleEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6753677: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6753D3B: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675F1F2: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675425C: PyImport_ImportModuleLevel (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66E7B9E: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x677AD3D: PyObject_Call (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x677B646: PyEval_CallObjectWithKeywords (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x668FC82: PyEval_EvalFrameEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66952E7: PyEval_EvalCodeEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6695421: PyEval_EvalCode (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66EC6CC: PyImport_ExecCodeModuleEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6753677: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6753D3B: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675F1F2: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675425C: PyImport_ImportModuleLevel (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66E7B9E: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x677AD3D: PyObject_Call (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x677B646: PyEval_CallObjectWithKeywords (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x668FC82: PyEval_EvalFrameEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66952E7: PyEval_EvalCodeEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6695421: PyEval_EvalCode (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66EC6CC: PyImport_ExecCodeModuleEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6753677: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x6753D3B: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675F1F2: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x675425C: PyImport_ImportModuleLevel (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66E7B9E: ??? (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x677AD3D: PyObject_Call (in /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66D815A: PyObject_CallFunction (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66DE9C9: PyImport_Import (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66E04D9: PyImport_ImportModule (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x66A09B3: Py_InitializeEx (in > /usr/lib/libpython2.7.so.1.0) > ==24205== by 0x2D2DC0: DoPyCommand (if_python.c:872) > ==24205== by 0x2D4FA0: ex_python (if_python.c:1030) > ==24205== by 0x1B641A: do_cmdline (ex_docmd.c:2689) > ==24205== by 0x2209A9: nv_colon (normal.c:5457) > > It was necessary to use --num-callers=50 in src/testdir/Makefile > to get most of the stack trace: > > VALGRIND = valgrind --tool=memcheck --num-callers=50 > --log-file=valgrind.$* > > make test86 to run the test with valgrind after enabling VALGRIND > as shown above. > > The PY_SSIZE_T_CLEAN fix didn't help to fix those invalid memory > accesses. > > Regards > Simon
Hi These valgrind error are annoying but they are not a bug. They should not cause a crash. See this document that describes why: http://svn.python.org/view/python/trunk/Misc/README.valgrind?view=markup --without-pymalloc That's not a new issue either. I have seen those valgrind errors with Python in Vim for several years. Of course, they make it harder to spot other real errors. If you want to get rid of those valgrind errors, you have to configure & rebuild the Python lib with --without-pymalloc as described at the above link. I tried that years ago and it did cleaned up the valgrind errors. I have not retried lately. I wonder why valgrind default ignored errors does not include them by the way. Regards Dominique -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to vim_dev+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.