PyROOT 5.28.00 on lxplus segfaults at import?

Dear experts,

I followed the instructions for setting up ROOT on lxplus (under bash) here:
root.cern.ch/drupal/content/prod … ersion-528

jhegeman@lxplus435 ~ $ . /afs/cern.ch/sw/lcg/external/gcc/4.3.2/x86_64-slc5/setup.sh
jhegeman@lxplus435 ~ $ . /afs/cern.ch/sw/lcg/app/releases/ROOT/5.28.00/x86_64-slc5-gcc43-opt/root/bin/thisroot.sh
jhegeman@lxplus435 ~ $ root-config --version
5.28/00

After this ROOT itself works fine, but PyROOT segfaults upon import:

jhegeman@lxplus435 ~ $ python
Python 2.4.3 (#1, Jan 14 2011, 22:42:01) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import ROOT

 *** Break *** segmentation violation



===========================================================
There was a crash.
This is the entire stack trace of all threads:
===========================================================
#0  0x00002ba4427bb115 in waitpid () from /lib64/libc.so.6
#1  0x00002ba44275d481 in do_system () from /lib64/libc.so.6
#2  0x00002ba446c7fc6a in TUnixSystem::StackTrace() () from /afs/cern.ch/sw/lcg/app/releases/ROOT/5.28.00/x86_64-slc5-gcc43-opt/root/lib/libCore.so
#3  0x00002ba446c7f63c in TUnixSystem::DispatchSignals(ESignals) () from /afs/cern.ch/sw/lcg/app/releases/ROOT/5.28.00/x86_64-slc5-gcc43-opt/root/lib/libCore.so
#4  <signal handler called>
#5  0x00002ba4467d0c31 in global constructors keyed to PyBufferFactory.cxx () from /afs/cern.ch/sw/lcg/app/releases/ROOT/5.28.00/x86_64-slc5-gcc43-opt/root/lib/libPyROOT.so
#6  0x00002ba446805956 in __do_global_ctors_aux () from /afs/cern.ch/sw/lcg/app/releases/ROOT/5.28.00/x86_64-slc5-gcc43-opt/root/lib/libPyROOT.so
#7  0x00002ba4467b2fa3 in _init () from /afs/cern.ch/sw/lcg/app/releases/ROOT/5.28.00/x86_64-slc5-gcc43-opt/root/lib/libPyROOT.so
#8  0x00002ba44679f03a in ?? () from /afs/cern.ch/sw/lcg/app/releases/ROOT/5.28.00/x86_64-slc5-gcc43-opt/root/lib/libPyROOT.so
#9  0x00002ba4417351bb in call_init () from /lib64/ld-linux-x86-64.so.2
#10 0x00002ba4417352c5 in _dl_init_internal () from /lib64/ld-linux-x86-64.so.2
#11 0x00002ba441738e34 in dl_open_worker () from /lib64/ld-linux-x86-64.so.2
#12 0x00002ba441734e46 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2
#13 0x00002ba4417385fc in _dl_open () from /lib64/ld-linux-x86-64.so.2
#14 0x00002ba442096f9a in dlopen_doit () from /lib64/libdl.so.2
#15 0x00002ba441734e46 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2
#16 0x00002ba44209750d in _dlerror_run () from /lib64/libdl.so.2
#17 0x00002ba442096f11 in dlopen

GLIBC_2.2.5 () from /lib64/libdl.so.2
#18 0x00002ba441bff723 in _PyImport_GetDynLoadFunc () from /usr/lib64/libpython2.4.so.1.0
#19 0x00002ba441bf4f47 in _PyImport_LoadDynamicModule () from /usr/lib64/libpython2.4.so.1.0
#20 0x00002ba441bf361c in ?? () from /usr/lib64/libpython2.4.so.1.0
#21 0x00002ba441bf3a9c in ?? () from /usr/lib64/libpython2.4.so.1.0
#22 0x00002ba441bf3ca0 in PyImport_ImportModuleEx () from /usr/lib64/libpython2.4.so.1.0
#23 0x00002ba441bd49b3 in ?? () from /usr/lib64/libpython2.4.so.1.0
#24 0x00002ba441b7d120 in PyObject_Call () from /usr/lib64/libpython2.4.so.1.0
#25 0x00002ba441bd78cd in PyEval_CallObjectWithKeywords () from /usr/lib64/libpython2.4.so.1.0
#26 0x00002ba441bd95aa in PyEval_EvalFrame () from /usr/lib64/libpython2.4.so.1.0
#27 0x00002ba441bddc25 in PyEval_EvalCodeEx () from /usr/lib64/libpython2.4.so.1.0
#28 0x00002ba441bddc72 in PyEval_EvalCode () from /usr/lib64/libpython2.4.so.1.0
#29 0x00002ba441bf215a in PyImport_ExecCodeModuleEx () from /usr/lib64/libpython2.4.so.1.0
#30 0x00002ba441bf2683 in ?? () from /usr/lib64/libpython2.4.so.1.0
#31 0x00002ba441bf361c in ?? () from /usr/lib64/libpython2.4.so.1.0
#32 0x00002ba441bf3a9c in ?? () from /usr/lib64/libpython2.4.so.1.0
#33 0x00002ba441bf3ca0 in PyImport_ImportModuleEx () from /usr/lib64/libpython2.4.so.1.0
#34 0x00002ba441bd49b3 in ?? () from /usr/lib64/libpython2.4.so.1.0
#35 0x00002ba441b7d120 in PyObject_Call () from /usr/lib64/libpython2.4.so.1.0
#36 0x00002ba441bd78cd in PyEval_CallObjectWithKeywords () from /usr/lib64/libpython2.4.so.1.0
#37 0x00002ba441bd95aa in PyEval_EvalFrame () from /usr/lib64/libpython2.4.so.1.0
#38 0x00002ba441bddc25 in PyEval_EvalCodeEx () from /usr/lib64/libpython2.4.so.1.0
#39 0x00002ba441bddc72 in PyEval_EvalCode () from /usr/lib64/libpython2.4.so.1.0
#40 0x00002ba441bf9eb9 in ?? () from /usr/lib64/libpython2.4.so.1.0
#41 0x00002ba441bfb747 in PyRun_InteractiveOneFlags () from /usr/lib64/libpython2.4.so.1.0
#42 0x00002ba441bfb83e in PyRun_InteractiveLoopFlags () from /usr/lib64/libpython2.4.so.1.0
#43 0x00002ba441bfb94c in PyRun_AnyFileExFlags () from /usr/lib64/libpython2.4.so.1.0
#44 0x00002ba441c01698 in Py_Main () from /usr/lib64/libpython2.4.so.1.0
#45 0x00002ba44273e994 in __libc_start_main () from /lib64/libc.so.6
#46 0x0000000000400629 in _start ()
===========================================================


The lines below might hint at the cause of the crash.
If they do not help you then please submit a bug report at
http://root.cern.ch/bugs. Please post the ENTIRE stack trace
from above as an attachment in addition to anything else
that might help us fixing this issue.
===========================================================
#5  0x00002ba4467d0c31 in global constructors keyed to PyBufferFactory.cxx () from /afs/cern.ch/sw/lcg/app/releases/ROOT/5.28.00/x86_64-slc5-gcc43-opt/root/lib/libPyROOT.so
#6  0x00002ba446805956 in __do_global_ctors_aux () from /afs/cern.ch/sw/lcg/app/releases/ROOT/5.28.00/x86_64-slc5-gcc43-opt/root/lib/libPyROOT.so
#7  0x00002ba4467b2fa3 in _init () from /afs/cern.ch/sw/lcg/app/releases/ROOT/5.28.00/x86_64-slc5-gcc43-opt/root/lib/libPyROOT.so
#8  0x00002ba44679f03a in ?? () from /afs/cern.ch/sw/lcg/app/releases/ROOT/5.28.00/x86_64-slc5-gcc43-opt/root/lib/libPyROOT.so
#9  0x00002ba4417351bb in call_init () from /lib64/ld-linux-x86-64.so.2
#10 0x00002ba4417352c5 in _dl_init_internal () from /lib64/ld-linux-x86-64.so.2
#11 0x00002ba441738e34 in dl_open_worker () from /lib64/ld-linux-x86-64.so.2
#12 0x00002ba441734e46 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2
#13 0x00002ba4417385fc in _dl_open () from /lib64/ld-linux-x86-64.so.2
#14 0x00002ba442096f9a in dlopen_doit () from /lib64/libdl.so.2
#15 0x00002ba441734e46 in _dl_catch_error () from /lib64/ld-linux-x86-64.so.2
#16 0x00002ba44209750d in _dlerror_run () from /lib64/libdl.so.2
#17 0x00002ba442096f11 in dlopen

GLIBC_2.2.5 () from /lib64/libdl.so.2
#18 0x00002ba441bff723 in _PyImport_GetDynLoadFunc () from /usr/lib64/libpython2.4.so.1.0
#19 0x00002ba441bf4f47 in _PyImport_LoadDynamicModule () from /usr/lib64/libpython2.4.so.1.0
#20 0x00002ba441bf361c in ?? () from /usr/lib64/libpython2.4.so.1.0
#21 0x00002ba441bf3a9c in ?? () from /usr/lib64/libpython2.4.so.1.0
#22 0x00002ba441bf3ca0 in PyImport_ImportModuleEx () from /usr/lib64/libpython2.4.so.1.0
#23 0x00002ba441bd49b3 in ?? () from /usr/lib64/libpython2.4.so.1.0
#24 0x00002ba441b7d120 in PyObject_Call () from /usr/lib64/libpython2.4.so.1.0
#25 0x00002ba441bd78cd in PyEval_CallObjectWithKeywords () from /usr/lib64/libpython2.4.so.1.0
#26 0x00002ba441bd95aa in PyEval_EvalFrame () from /usr/lib64/libpython2.4.so.1.0
#27 0x00002ba441bddc25 in PyEval_EvalCodeEx () from /usr/lib64/libpython2.4.so.1.0
#28 0x00002ba441bddc72 in PyEval_EvalCode () from /usr/lib64/libpython2.4.so.1.0
#29 0x00002ba441bf215a in PyImport_ExecCodeModuleEx () from /usr/lib64/libpython2.4.so.1.0
#30 0x00002ba441bf2683 in ?? () from /usr/lib64/libpython2.4.so.1.0
#31 0x00002ba441bf361c in ?? () from /usr/lib64/libpython2.4.so.1.0
#32 0x00002ba441bf3a9c in ?? () from /usr/lib64/libpython2.4.so.1.0
#33 0x00002ba441bf3ca0 in PyImport_ImportModuleEx () from /usr/lib64/libpython2.4.so.1.0
#34 0x00002ba441bd49b3 in ?? () from /usr/lib64/libpython2.4.so.1.0
#35 0x00002ba441b7d120 in PyObject_Call () from /usr/lib64/libpython2.4.so.1.0
#36 0x00002ba441bd78cd in PyEval_CallObjectWithKeywords () from /usr/lib64/libpython2.4.so.1.0
#37 0x00002ba441bd95aa in PyEval_EvalFrame () from /usr/lib64/libpython2.4.so.1.0
#38 0x00002ba441bddc25 in PyEval_EvalCodeEx () from /usr/lib64/libpython2.4.so.1.0
#39 0x00002ba441bddc72 in PyEval_EvalCode () from /usr/lib64/libpython2.4.so.1.0
#40 0x00002ba441bf9eb9 in ?? () from /usr/lib64/libpython2.4.so.1.0
#41 0x00002ba441bfb747 in PyRun_InteractiveOneFlags () from /usr/lib64/libpython2.4.so.1.0
#42 0x00002ba441bfb83e in PyRun_InteractiveLoopFlags () from /usr/lib64/libpython2.4.so.1.0
#43 0x00002ba441bfb94c in PyRun_AnyFileExFlags () from /usr/lib64/libpython2.4.so.1.0
#44 0x00002ba441c01698 in Py_Main () from /usr/lib64/libpython2.4.so.1.0
#45 0x00002ba44273e994 in __libc_start_main () from /lib64/libc.so.6
#46 0x0000000000400629 in _start ()
===========================================================

I checked and the Python version used is 64 bits, so that’s not the problem:

jhegeman@lxplus435 ~ $ which python
/usr/bin/python
jhegeman@lxplus435 ~ $ file /usr/bin/python
/usr/bin/python: ELF 64-bit LSB executable, AMD x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), for GNU/Linux 2.6.9, stripped

but it was built with GCC 4.1.2. Is that the problem? How do I figure out against which version of Python this ROOT version was built?

Or is it time to open a bug report?

Cheers,
Jeroen

Hi,

ROOT is using Python2.6.5. So you should use Python2.6.5 from afs. And you can find the informations about the options used to build ROOT in /afs/cern.ch/sw/lcg/app/releases/ROOT/5.28.00/x86_64-slc5-gcc43-opt/_SPI/config.status

Cheers, Bertrand.

Awesome, that fixes things. Just had to look at the install log (in _SPI) to figure out which Python dirs to add to PATH and LD_LIBRARY_PATH.

Thanks Bertrand!

Glad to see the problem is solved! And you’re welcome :slight_smile:

Cheers, Bertrand.