Pyroot crashing on strange occasions

Dear experts,

I’ve been coming across an error, which I do not fully understand. If I have a file, say “minTest.py”

from ROOT import *
import ROOT

and I import this in another file, say “minTest2.py”

from minTest2 import *

and then run it

python minTest2.py

then everything is fine. If I instead add a function to “minTest.py”

from ROOT import *
import ROOT

def testFunction():
        print 'abc'

then I occasionally get following crash report from Python

*** Error in `python': malloc(): memory corruption: 0x0000000003717eb0 ***
======= Backtrace: =========
/lib64/libc.so.6(+0x82c86)[0x7f47e51eac86]
/lib64/libc.so.6(__libc_malloc+0x4c)[0x7f47e51ed84c]
/lib64/libpython2.7.so.1.0(+0x81889)[0x7f47e5edb889]
/lib64/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x4c68)[0x7f47e5f3cb68]
/lib64/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x7ed)[0x7f47e5f4103d]
/lib64/libpython2.7.so.1.0(PyEval_EvalCode+0x32)[0x7f47e5f41142]
/lib64/libpython2.7.so.1.0(+0x10057f)[0x7f47e5f5a57f]
/lib64/libpython2.7.so.1.0(PyRun_FileExFlags+0x7e)[0x7f47e5f5b73e]
/lib64/libpython2.7.so.1.0(PyRun_SimpleFileExFlags+0xe9)[0x7f47e5f5c9c9]
/lib64/libpython2.7.so.1.0(Py_Main+0xc9f)[0x7f47e5f6db7f]
/lib64/libc.so.6(__libc_start_main+0xf5)[0x7f47e518a445]
python[0x40066e]
======= Memory map: ========
00400000-00401000 r-xp 00000000 fc:01 254551                             /usr/bin/python2.7
00600000-00601000 r--p 00000000 fc:01 254551                             /usr/bin/python2.7
00601000-00602000 rw-p 00001000 fc:01 254551                             /usr/bin/python2.7
006d1000-037fc000 rw-p 00000000 00:00 0                                  [heap]
7f47c0000000-7f47c0021000 rw-p 00000000 00:00 0 
7f47c0021000-7f47c4000000 ---p 00000000 00:00 0 
7f47c8000000-7f47c8021000 rw-p 00000000 00:00 0 
7f47c8021000-7f47cc000000 ---p 00000000 00:00 0 
7f47ce554000-7f47ce555000 ---p 00000000 00:00 0 
7f47ce555000-7f47ced55000 rw-p 00000000 00:00 0 
7f47ced55000-7f47ced59000 r-xp 00000000 fc:01 254384                     /usr/lib64/python2.7/lib-dynload/timemodule.so
7f47ced59000-7f47cef58000 ---p 00004000 fc:01 254384                     /usr/lib64/python2.7/lib-dynload/timemodule.so
7f47cef58000-7f47cef59000 r--p 00003000 fc:01 254384                     /usr/lib64/python2.7/lib-dynload/timemodule.so
7f47cef59000-7f47cef5b000 rw-p 00004000 fc:01 254384                     /usr/lib64/python2.7/lib-dynload/timemodule.so
7f47cef5b000-7f47cef9b000 rw-p 00000000 00:00 0 
7f47cef9b000-7f47cf06b000 r-xp 00000000 fc:01 29654585                   /usr/lib64/root/libROOTVecOps.so.6.14.04
7f47cf06b000-7f47cf26a000 ---p 000d0000 fc:01 29654585                   /usr/lib64/root/libROOTVecOps.so.6.14.04
7f47cf26a000-7f47cf26c000 r--p 000cf000 fc:01 29654585                   /usr/lib64/root/libROOTVecOps.so.6.14.04
7f47cf26c000-7f47cf26d000 rw-p 000d1000 fc:01 29654585                   /usr/lib64/root/libROOTVecOps.so.6.14.04
7f47cf26d000-7f47cf26f000 rw-p 00000000 00:00 0 
7f47cf26f000-7f47cf458000 r-xp 00000000 fc:01 29655595                   /usr/lib64/root/libMathCore.so.6.14.04
7f47cf458000-7f47cf658000 ---p 001e9000 fc:01 29655595                   /usr/lib64/root/libMathCore.so.6.14.04
7f47cf658000-7f47cf663000 r--p 001e9000 fc:01 29655595                   /usr/lib64/root/libMathCore.so.6.14.04
7f47cf663000-7f47cf666000 rw-p 001f4000 fc:01 29655595                   /usr/lib64/root/libMathCore.so.6.14.04
7f47cf666000-7f47cf670000 rw-p 00000000 00:00 0 
7f47cf670000-7f47cf682000 r-xp 00000000 fc:01 29655723                   /usr/lib64/root/libvectorDict.so.6.14.04
7f47cf682000-7f47cf882000 ---p 00012000 fc:01 29655723                   /usr/lib64/root/libvectorDict.so.6.14.04
7f47cf882000-7f47cf883000 r--p 00012000 fc:01 29655723                   /usr/lib64/root/libvectorDict.so.6.14.04
7f47cf883000-7f47cf884000 rw-p 00013000 fc:01 29655723                   /usr/lib64/root/libvectorDict.so.6.14.04
7f47cf884000-7f47cf885000 rw-p 00000000 00:00 0 
7f47cf885000-7f47cf8a7000 r-xp 00000000 fc:01 2179764                    /usr/lib64/ld-2.17.so
7f47cf8a7000-7f47cfaa6000 ---p 00022000 fc:01 2179764                    /usr/lib64/ld-2.17.so
7f47cfaa6000-7f47cfaa7000 r--p 00021000 fc:01 2179764                    /usr/lib64/ld-2.17.so
7f47cfaa7000-7f47cfaa8000 rw-p 00022000 fc:01 2179764                    /usr/lib64/ld-2.17.so
7f47cfaa8000-7f47cfaa9000 rw-p 00000000 00:00 0 
7f47cfaa9000-7f47cfaac000 r-xp 00000000 fc:01 254340                     /usr/lib64/python2.7/lib-dynload/_heapq.so
7f47cfaac000-7f47cfcab000 ---p 00003000 fc:01 254340                     /usr/lib64/python2.7/lib-dynload/_heapq.so
7f47cfcab000-7f47cfcac000 r--p 00002000 fc:01 254340                     /usr/lib64/python2.7/lib-dynload/_heapq.so
7f47cfcac000-7f47cfcae000 rw-p 00003000 fc:01 254340                     /usr/lib64/python2.7/lib-dynload/_heapq.so
7f47cfcae000-7f47cfcb8000 r-xp 00000000 fc:01 254368                     /usr/lib64/python2.7/lib-dynload/itertoolsmodule.so
7f47cfcb8000-7f47cfeb7000 ---p 0000a000 fc:01 254368                     /usr/lib64/python2.7/lib-dynload/itertoolsmodule.so
7f47cfeb7000-7f47cfeb8000 r--p 00009000 fc:01 254368                     /usr/lib64/python2.7/lib-dynload/itertoolsmodule.so
7f47cfeb8000-7f47cfebd000 rw-p 0000a000 fc:01 254368                     /usr/lib64/python2.7/lib-dynload/itertoolsmodule.so
7f47cfebd000-7f47cfefd000 rw-p 00000000 00:00 0 
7f47cfefd000-7f47cff03000 r-xp 00000000 fc:01 254299                     /usr/lib64/python2.7/lib-dynload/_collectionsmodule.so
7f47cff03000-7f47d0102000 ---p 00006000 fc:01 254299                     /usr/lib64/python2.7/lib-dynload/_collectionsmodule.so
7f47d0102000-7f47d0103000 r--p 00005000 fc:01 254299                     /usr/lib64/python2.7/lib-dynload/_collectionsmodule.so
7f47d0103000-7f47d0105000 rw-p 00006000 fc:01 254299                     /usr/lib64/python2.7/lib-dynload/_collectionsmodule.so
7f47d0105000-7f47d010e000 r-xp 00000000 fc:01 254373                     /usr/lib64/python2.7/lib-dynload/operator.so
7f47d010e000-7f47d030d000 ---p 00009000 fc:01 254373                     /usr/lib64/python2.7/lib-dynload/operator.so
7f47d030d000-7f47d030e000 r--p 00008000 fc:01 254373                     /usr/lib64/python2.7/lib-dynload/operator.so
7f47d030e000-7f47d0310000 rw-p 00009000 fc:01 254373                     /usr/lib64/python2.7/lib-dynload/operator.so
7f47d0310000-7f47d034c000 r-xp 00000000 fc:01 2250129                    /usr/lib64/libreadline.so.6.2
7f47d034c000-7f47d054c000 ---p 0003c000 fc:01 2250129                    /usr/lib64/libreadline.so.6.2
7f47d054c000-7f47d054e000 r--p 0003c000 fc:01 2250129                    /usr/lib64/libreadline.so.6.2
7f47d054e000-7f47d0554000 rw-p 0003e000 fc:01 2250129                    /usr/lib64/libreadline.so.6.2
7f47d0554000-7f47d0556000 rw-p 00000000 00:00 0 
7f47d0556000-7f47d055b000 r-xp 00000000 fc:01 254377                     /usr/lib64/python2.7/lib-dynload/readline.so
7f47d055b000-7f47d075a000 ---p 00005000 fc:01 254377                     /usr/lib64/python2.7/lib-dynload/readline.so
7f47d075a000-7f47d075b000 r--p 00004000 fc:01 254377                     /usr/lib64/python2.7/lib-dynload/readline.soAborted (core dumped)

Removing the “from ROOT import *” cures this issue. Why is that?


ROOT Version: 6.14
Platform: lxplus7


@etejedor , our PyROOT expert will check as soon as he comes back

1 Like

Hi @gollumben,

I recommend that you use specific imports instead of from ROOT import *, e.g. from ROOT import TFile.

Although it should still work in Python2, it is not supported in Python3 nor IPython.

Cheers,

Enric

Thank you for clarification!

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.