Segmentation fault with scipy


ROOT Version: 6.14
Platform: CC7
Compiler: GCC 6.2


Hi all,

I am having a weird problem in the intersection between Python, C++, and (maybe?) ROOT.

Honestly, I am not sure ROOT is the culprit, but since it appears in the stacktrace it might be related. If somebody got the time to take a look it would be wonderful but I am not expecting it.

The problem arises in a freshly compiled version of the SHiP software.

I pinpoint the issue at the import of scipy.optimize.minimize function.

On this import, python goes into Segmentation Fault and I got printed the stacktrace at the end of the post.

At the moment I wasn’t able to minimize further the problem to just few lines.

To reproduce is sufficient to run:

$ docker run -it gitlab-registry.cern.ch/smosciat/shiptest/fairship:cc7
$ pushd $HOME
$ aliBuild -c shipdist/ --default fairship --remote-store /cvmfs/ship.cern.ch/SHiPBuild/sw build FairShip
$ python $FAIRSHIP/macro/run_simScript.py --test
$ python $FAIRSHIP/macro/ShipReco.py -f ship.conical.Pythia8-TGeant4.root -g geofile_full.conical.Pythia8-TGeant4.root

The software is built with aliBuild, and I am trusting it for all the information regarding the compiler used and the version of the software.

Finally, the stacktrace that I got:

 *** Break *** segmentation violation
===========================================================
There was a crash.
This is the entire stack trace of all threads:
===========================================================
#0  0x00007f13162d0a89 in waitpid () from /lib64/libc.so.6
#1  0x00007f131624ede2 in do_system () from /lib64/libc.so.6
#2  0x00007f131624f191 in system () from /lib64/libc.so.6
#3  0x00007f1311605e37 in TUnixSystem::Exec (shellcmd=<optimized out>, this=0x20ab730) at /root/sw/SOURCES/ROOT/v6-14-00-ship/2cdee4dbd9/core/unix/src/TUnixSystem.cxx:2119
#4  TUnixSystem::StackTrace (this=0x20ab730) at /root/sw/SOURCES/ROOT/v6-14-00-ship/2cdee4dbd9/core/unix/src/TUnixSystem.cxx:2413
#5  0x00007f1311608584 in TUnixSystem::DispatchSignals (this=0x20ab730, sig=kSigSegmentationViolation) at /root/sw/SOURCES/ROOT/v6-14-00-ship/2cdee4dbd9/core/unix/src/TUnixSystem.cxx:3644
#6  <signal handler called>
#7  0x00007f13029d70c0 in PyArray_API () from /root/sw/slc7_x86-64/Python-modules/1.0-1/lib/python2.7/site-packages/numpy/core/multiarray.so
#8  0x00007f12fe556114 in _import_array () at /opt/_internal/cpython-2.7.11-ucs4/lib/python2.7/site-packages/numpy/core/include/numpy/__multiarray_api.h:1633
#9  initminpack2 () at build/src.linux-x86_64-2.7/scipy/optimize/minpack2/minpack2module.c:690
#10 0x00007f131701ea2c in _PyImport_LoadDynamicModule (name=0x131e7c20 "scipy.optimize.minpack2", pathname=0x131e8c30 "/root/sw/slc7_x86-64/Python-modules/1.0-1/lib/python2.7/site-packages/scipy/optimize/minpack2.so", fp=<optimized out>) 
at ./Python/importdl.c:53
#11 0x00007f131701c3c1 in import_submodule (mod=mod
entry=0x7f12cb827b40, subname=subname
entry=0x7f12fe8348c4 "minpack2", fullname=fullname
entry=0x131e7c20 "scipy.optimize.minpack2") at Python/import.c:2704
#12 0x00007f131701c67b in ensure_fromlist (mod=mod
entry=0x7f12cb827b40, fromlist=fromlist
entry=0x7f12cb842dd0, buf=buf
entry=0x131e7c20 "scipy.optimize.minpack2", buflen=buflen
entry=14, recursive=recursive
entry=0) at Python/import.c:2610
#13 0x00007f131701d3c6 in import_module_level (locals=<optimized out>, level=<optimized out>, fromlist=<optimized out>, globals=<optimized out>, name=<optimized out>) at Python/import.c:2273
#14 PyImport_ImportModuleLevel (name=<optimized out>, globals=<optimized out>, locals=<optimized out>, fromlist=<optimized out>, level=<optimized out>) at Python/import.c:2292
#15 0x00007f1316ffede8 in builtin___import__ (self=<optimized out>, args=<optimized out>, kwds=<optimized out>) at Python/bltinmodule.c:49
#16 0x00007f1317006bcc in ext_do_call (nk=<optimized out>, na=1, flags=<optimized out>, pp_stack=0x7ffe0e798e60, func=0x7f13174fcfc8) at Python/ceval.c:4345
#17 PyEval_EvalFrameEx (f=f
entry=0x7f12cb851050, throwflag=throwflag
entry=0) at Python/ceval.c:2720
#18 0x00007f1317007a9c in PyEval_EvalCodeEx (co=<optimized out>, globals=<optimized out>, locals=locals
entry=0x0, args=args
entry=0x7f12cb822c08, argcount=5, kws=kws
entry=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3267
#19 0x00007f1316f8176c in function_call (func=0x7f1304169320, arg=0x7f12cb822bf0, kw=0x0) at Objects/funcobject.c:526
#20 0x00007f1316f50e03 in PyObject_Call (func=func
entry=0x7f1304169320, arg=arg
entry=0x7f12cb822bf0, kw=<optimized out>) at Objects/abstract.c:2529
#21 0x00007f1317000937 in PyEval_CallObjectWithKeywords (func=func
entry=0x7f1304169320, arg=arg
entry=0x7f12cb822bf0, kw=kw
entry=0x0) at Python/ceval.c:3904
#22 0x00007f131700441f in PyEval_EvalFrameEx (f=f
entry=0x7f12d2d38a00, throwflag=throwflag
entry=0) at Python/ceval.c:2348
#23 0x00007f1317007a9c in PyEval_EvalCodeEx (co=co
entry=0x7f12cb8501b0, globals=globals
entry=0x7f12cb82b7f8, locals=locals
entry=0x7f12cb82b7f8, args=args
entry=0x0, argcount=argcount
entry=0, kws=kws
entry=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3267
#24 0x00007f1317007b99 in PyEval_EvalCode (co=co
entry=0x7f12cb8501b0, globals=globals
entry=0x7f12cb82b7f8, locals=locals
entry=0x7f12cb82b7f8) at Python/ceval.c:669
#25 0x00007f131701b020 in PyImport_ExecCodeModuleEx (name=name
entry=0x13206120 "scipy.optimize.linesearch", co=co
entry=0x7f12cb8501b0, pathname=pathname
entry=0x131fcae0 "/root/sw/slc7_x86-64/Python-modules/1.0-1/lib/python2.7/site-packages/scipy/optimize/linesearch.pyc") at Python/import.c:713
#26 0x00007f131701b386 in load_source_module (name=0x13206120 "scipy.optimize.linesearch", pathname=0x131fcae0 "/root/sw/slc7_x86-64/Python-modules/1.0-1/lib/python2.7/site-packages/scipy/optimize/linesearch.pyc", fp=<optimized out>) at P
ython/import.c:1103
#27 0x00007f131701c3c1 in import_submodule (mod=mod
entry=0x7f12cb827b40, subname=subname
entry=0x1320612f "linesearch", fullname=fullname
entry=0x13206120 "scipy.optimize.linesearch") at Python/import.c:2704
#28 0x00007f131701d24c in load_next (p_buflen=<synthetic pointer>, buf=0x13206120 "scipy.optimize.linesearch", p_name=<synthetic pointer>, altmod=0x7f12cb827b40, mod=0x7f12cb827b40) at Python/import.c:2519
#29 import_module_level (locals=<optimized out>, level=<optimized out>, fromlist=0x7f12fe7c6838, globals=<optimized out>, name=0x0) at Python/import.c:2228
#30 PyImport_ImportModuleLevel (name=0x7f12fe834894 "linesearch", globals=<optimized out>, locals=<optimized out>, fromlist=0x7f12fe7c6838, level=<optimized out>) at Python/import.c:2292
#31 0x00007f1316ffede8 in builtin___import__ (self=<optimized out>, args=<optimized out>, kwds=<optimized out>) at Python/bltinmodule.c:49
#32 0x00007f1317006bcc in ext_do_call (nk=<optimized out>, na=1, flags=<optimized out>, pp_stack=0x7ffe0e799540, func=0x7f13174fcfc8) at Python/ceval.c:4345
#33 PyEval_EvalFrameEx (f=f
entry=0x7f12d6313410, throwflag=throwflag
entry=0) at Python/ceval.c:2720

... cut for limit in discourse ...


#90 0x00007f131701b020 in PyImport_ExecCodeModuleEx (name=name
entry=0x131ac750 "shipDigiReco", co=co
entry=0x7f12cb83b030, pathname=pathname
entry=0x131ba600 "/root/sw/slc7_x86-64/FairShip/master-1/python/shipDigiReco.py") at Python/import.c:713
#91 0x00007f131701b386 in load_source_module (name=0x131ac750 "shipDigiReco", pathname=0x131ba600 "/root/sw/slc7_x86-64/FairShip/master-1/python/shipDigiReco.py", fp=<optimized out>) at Python/import.c:1103
#92 0x00007f131701c3c1 in import_submodule (mod=mod
entry=0x7f13172c8de0 <_Py_NoneStruct>, subname=subname
entry=0x131ac750 "shipDigiReco", fullname=fullname
entry=0x131ac750 "shipDigiReco") at Python/import.c:2704
#93 0x00007f131701d24c in load_next (p_buflen=<synthetic pointer>, buf=0x131ac750 "shipDigiReco", p_name=<synthetic pointer>, altmod=0x7f13172c8de0 <_Py_NoneStruct>, mod=0x7f13172c8de0 <_Py_NoneStruct>) at Python/import.c:2519
#94 import_module_level (locals=<optimized out>, level=<optimized out>, fromlist=0x7f13172c8de0 <_Py_NoneStruct>, globals=<optimized out>, name=0x0) at Python/import.c:2228
#95 PyImport_ImportModuleLevel (name=0x7f13173952bc "shipDigiReco", globals=<optimized out>, locals=<optimized out>, fromlist=0x7f13172c8de0 <_Py_NoneStruct>, level=<optimized out>) at Python/import.c:2292
#96 0x00007f1316ffede8 in builtin___import__ (self=<optimized out>, args=<optimized out>, kwds=<optimized out>) at Python/bltinmodule.c:49
#97 0x00007f1317006bcc in ext_do_call (nk=<optimized out>, na=1, flags=<optimized out>, pp_stack=0x7ffe0e79b100, func=0x7f13174fcfc8) at Python/ceval.c:4345
#98 PyEval_EvalFrameEx (f=f
entry=0x7f1303913d70, throwflag=throwflag
entry=0) at Python/ceval.c:2720
#99 0x00007f1317007a9c in PyEval_EvalCodeEx (co=<optimized out>, globals=<optimized out>, locals=locals
entry=0x0, args=args
entry=0x7f12cd9e8cc8, argcount=4, kws=kws
entry=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3267
#100 0x00007f1316f8176c in function_call (func=0x7f1304169320, arg=0x7f12cd9e8cb0, kw=0x0) at Objects/funcobject.c:526
#101 0x00007f1316f50e03 in PyObject_Call (func=func
entry=0x7f1304169320, arg=arg
entry=0x7f12cd9e8cb0, kw=<optimized out>) at Objects/abstract.c:2529
#102 0x00007f1317000937 in PyEval_CallObjectWithKeywords (func=func
entry=0x7f1304169320, arg=arg
entry=0x7f12cd9e8cb0, kw=kw
entry=0x0) at Python/ceval.c:3904
#103 0x00007f131700441f in PyEval_EvalFrameEx (f=f
entry=0x7f131749ac50, throwflag=throwflag
entry=0) at Python/ceval.c:2348
#104 0x00007f1317007a9c in PyEval_EvalCodeEx (co=co
entry=0x7f13173eaab0, globals=globals
entry=0x7f131749e168, locals=locals
entry=0x7f131749e168, args=args
entry=0x0, argcount=argcount
entry=0, kws=kws
entry=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3267
#105 0x00007f1317007b99 in PyEval_EvalCode (co=co
entry=0x7f13173eaab0, globals=globals
entry=0x7f131749e168, locals=locals
entry=0x7f131749e168) at Python/ceval.c:669
#106 0x00007f131702c19a in run_mod (arena=0x202e930, flags=0x7ffe0e79b5d0, locals=0x7f131749e168, globals=0x7f131749e168, filename=0x1ffa690 "\240\241\031\002", mod=<optimized out>) at Python/pythonrun.c:1371
#107 PyRun_FileExFlags (fp=fp
entry=0x1ffa690, filename=filename
entry=0x7ffe0e79c1ba "/root/sw/slc7_x86-64/FairShip/master-1/macro/ShipReco.py", start=start
entry=257, globals=globals
entry=0x7f131749e168, locals=locals
entry=0x7f131749e168, closeit=closeit
entry=1, flags=0x7ffe0e79b5d0) at Python/pythonrun.c:1357
#108 0x00007f131702d575 in PyRun_SimpleFileExFlags (fp=fp
entry=0x1ffa690, filename=0x7ffe0e79c1ba "/root/sw/slc7_x86-64/FairShip/master-1/macro/ShipReco.py", closeit=closeit
entry=1, flags=flags
entry=0x7ffe0e79b5d0) at Python/pythonrun.c:949
#109 0x00007f131702dc33 in PyRun_AnyFileExFlags (fp=fp
entry=0x1ffa690, filename=<optimized out>, closeit=closeit
entry=1, flags=flags
entry=0x7ffe0e79b5d0) at Python/pythonrun.c:753
#110 0x00007f13170439b1 in Py_Main (argc=<optimized out>, argv=<optimized out>) at Modules/main.c:640
#111 0x00007f131622e3d5 in __libc_start_main () from /lib64/libc.so.6
#112 0x000000000040064e in _start ()



===========================================================


The lines below might hint at the cause of the crash.
You may get help by asking at the ROOT forum http://root.cern.ch/forum
Only if you are really convinced it is a bug in ROOT then please submit a
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.
===========================================================
#7  0x00007f13029d70c0 in PyArray_API () from /root/sw/slc7_x86-64/Python-modules/1.0-1/lib/python2.7/site-packages/numpy/core/multiarray.so
#8  0x00007f12fe556114 in _import_array () at /opt/_internal/cpython-2.7.11-ucs4/lib/python2.7/site-packages/numpy/core/include/numpy/__multiarray_api.h:1633
#9  initminpack2 () at build/src.linux-x86_64-2.7/scipy/optimize/minpack2/minpack2module.c:690
#10 0x00007f131701ea2c in _PyImport_LoadDynamicModule (name=0x131e7c20 "scipy.optimize.minpack2", pathname=0x131e8c30 "/root/sw/slc7_x86-64/Python-modules/1.0-1/lib/python2.7/site-packages/scipy/optimize/minpack2.so", fp=<optimized out>) 
at ./Python/importdl.c:53
#11 0x00007f131701c3c1 in import_submodule (mod=mod
entry=0x7f12cb827b40, subname=subname
entry=0x7f12fe8348c4 "minpack2", fullname=fullname
entry=0x131e7c20 "scipy.optimize.minpack2") at Python/import.c:2704
#12 0x00007f131701c67b in ensure_fromlist (mod=mod
entry=0x7f12cb827b40, fromlist=fromlist
entry=0x7f12cb842dd0, buf=buf
entry=0x131e7c20 "scipy.optimize.minpack2", buflen=buflen
entry=14, recursive=recursive
entry=0) at Python/import.c:2610
#13 0x00007f131701d3c6 in import_module_level (locals=<optimized out>, level=<optimized out>, fromlist=<optimized out>, globals=<optimized out>, name=<optimized out>) at Python/import.c:2273
#14 PyImport_ImportModuleLevel (name=<optimized out>, globals=<optimized out>, locals=<optimized out>, fromlist=<optimized out>, level=<optimized out>) at Python/import.c:2292
#15 0x00007f1316ffede8 in builtin___import__ (self=<optimized out>, args=<optimized out>, kwds=<optimized out>) at Python/bltinmodule.c:49
#16 0x00007f1317006bcc in ext_do_call (nk=<optimized out>, na=1, flags=<optimized out>, pp_stack=0x7ffe0e798e60, func=0x7f13174fcfc8) at Python/ceval.c:4345
#17 PyEval_EvalFrameEx (f=f
entry=0x7f12cb851050, throwflag=throwflag
entry=0) at Python/ceval.c:2720
#18 0x00007f1317007a9c in PyEval_EvalCodeEx (co=<optimized out>, globals=<optimized out>, locals=locals
entry=0x0, args=args
entry=0x7f12cb822c08, argcount=5, kws=kws
entry=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3267
#19 0x00007f1316f8176c in function_call (func=0x7f1304169320, arg=0x7f12cb822bf0, kw=0x0) at Objects/funcobject.c:526
#20 0x00007f1316f50e03 in PyObject_Call (func=func
entry=0x7f1304169320, arg=arg
entry=0x7f12cb822bf0, kw=<optimized out>) at Objects/abstract.c:2529
#21 0x00007f1317000937 in PyEval_CallObjectWithKeywords (func=func
entry=0x7f1304169320, arg=arg
entry=0x7f12cb822bf0, kw=kw
entry=0x0) at Python/ceval.c:3904
#22 0x00007f131700441f in PyEval_EvalFrameEx (f=f
entry=0x7f12d2d38a00, throwflag=throwflag
entry=0) at Python/ceval.c:2348
#23 0x00007f1317007a9c in PyEval_EvalCodeEx (co=co
entry=0x7f12cb8501b0, globals=globals
entry=0x7f12cb82b7f8, locals=locals
entry=0x7f12cb82b7f8, args=args
entry=0x0, argcount=argcount
entry=0, kws=kws
entry=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3267
#24 0x00007f1317007b99 in PyEval_EvalCode (co=co
entry=0x7f12cb8501b0, globals=globals
entry=0x7f12cb82b7f8, locals=locals
entry=0x7f12cb82b7f8) at Python/ceval.c:669
#25 0x00007f131701b020 in PyImport_ExecCodeModuleEx (name=name
entry=0x13206120 "scipy.optimize.linesearch", co=co
entry=0x7f12cb8501b0, pathname=pathname
entry=0x131fcae0 "/root/sw/slc7_x86-64/Python-modules/1.0-1/lib/python2.7/site-packages/scipy/optimize/linesearch.pyc") at Python/import.c:713
#26 0x00007f131701b386 in load_source_module (name=0x13206120 "scipy.optimize.linesearch", pathname=0x131fcae0 "/root/sw/slc7_x86-64/Python-modules/1.0-1/lib/python2.7/site-packages/scipy/optimize/linesearch.pyc", fp=<optimized out>) at P
ython/import.c:1103
#27 0x00007f131701c3c1 in import_submodule (mod=mod
entry=0x7f12cb827b40, subname=subname
entry=0x1320612f "linesearch", fullname=fullname
entry=0x13206120 "scipy.optimize.linesearch") at Python/import.c:2704
#28 0x00007f131701d24c in load_next (p_buflen=<synthetic pointer>, buf=0x13206120 "scipy.optimize.linesearch", p_name=<synthetic pointer>, altmod=0x7f12cb827b40, mod=0x7f12cb827b40) at Python/import.c:2519
#29 import_module_level (locals=<optimized out>, level=<optimized out>, fromlist=0x7f12fe7c6838, globals=<optimized out>, name=0x0) at Python/import.c:2228
#30 PyImport_ImportModuleLevel (name=0x7f12fe834894 "linesearch", globals=<optimized out>, locals=<optimized out>, fromlist=0x7f12fe7c6838, level=<optimized out>) at Python/import.c:2292
#31 0x00007f1316ffede8 in builtin___import__ (self=<optimized out>, args=<optimized out>, kwds=<optimized out>) at Python/bltinmodule.c:49
#32 0x00007f1317006bcc in ext_do_call (nk=<optimized out>, na=1, flags=<optimized out>, pp_stack=0x7ffe0e799540, func=0x7f13174fcfc8) at Python/ceval.c:4345
#33 PyEval_EvalFrameEx (f=f
entry=0x7f12d6313410, throwflag=throwflag
entry=0) at Python/ceval.c:2720
#34 0x00007f1317007a9c in PyEval_EvalCodeEx (co=<optimized out>, globals=<optimized out>, locals=locals
entry=0x0, args=args
entry=0x7f12cb83df68, argcount=5, kws=kws
entry=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3267
#35 0x00007f1316f8176c in function_call (func=0x7f1304169320, arg=0x7f12cb83df50, kw=0x0) at Objects/funcobject.c:526
#36 0x00007f1316f50e03 in PyObject_Call (func=func
entry=0x7f1304169320, arg=arg
entry=0x7f12cb83df50, kw=<optimized out>) at Objects/abstract.c:2529
#37 0x00007f1317000937 in PyEval_CallObjectWithKeywords (func=func
entry=0x7f1304169320, arg=arg
entry=0x7f12cb83df50, kw=kw
entry=0x0) at Python/ceval.c:3904
#38 0x00007f131700441f in PyEval_EvalFrameEx (f=f
entry=0x131b58b0, throwflag=throwflag
entry=0) at Python/ceval.c:2348
#39 0x00007f1317007a9c in PyEval_EvalCodeEx (co=co
entry=0x7f12cb8475b0, globals=globals
entry=0x7f12cb8295c8, locals=locals
entry=0x7f12cb8295c8, args=args
entry=0x0, argcount=argcount
entry=0, kws=kws
entry=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3267
#40 0x00007f1317007b99 in PyEval_EvalCode (co=co
entry=0x7f12cb8475b0, globals=globals
entry=0x7f12cb8295c8, locals=locals
entry=0x7f12cb8295c8) at Python/ceval.c:669
#41 0x00007f131701b020 in PyImport_ExecCodeModuleEx (name=name
entry=0x131bce60 "scipy.optimize.optimize", co=co
entry=0x7f12cb8475b0, pathname=pathname
entry=0x131c6610 "/root/sw/slc7_x86-64/Python-modules/1.0-1/lib/python2.7/site-packages/scipy/optimize/optimize.pyc") at Python/import.c:713
#42 0x00007f131701b386 in load_source_module (name=0x131bce60 "scipy.optimize.optimize", pathname=0x131c6610 "/root/sw/slc7_x86-64/Python-modules/1.0-1/lib/python2.7/site-packages/scipy/optimize/optimize.pyc", fp=<optimized out>) at Pytho
n/import.c:1103
#43 0x00007f131701c3c1 in import_submodule (mod=mod
entry=0x7f12cb827b40, subname=subname
entry=0x131bce6f "optimize", fullname=fullname
entry=0x131bce60 "scipy.optimize.optimize") at Python/import.c:2704
#44 0x00007f131701d24c in load_next (p_buflen=<synthetic pointer>, buf=0x131bce60 "scipy.optimize.optimize", p_name=<synthetic pointer>, altmod=0x7f12cb827b40, mod=0x7f12cb827b40) at Python/import.c:2519
#45 import_module_level (locals=<optimized out>, level=<optimized out>, fromlist=0x7f12fe787b50, globals=<optimized out>, name=0x0) at Python/import.c:2228
#46 PyImport_ImportModuleLevel (name=0x7f1317507b34 "optimize", globals=<optimized out>, locals=<optimized out>, fromlist=0x7f12fe787b50, level=<optimized out>) at Python/import.c:2292
#47 0x00007f1316ffede8 in builtin___import__ (self=<optimized out>, args=<optimized out>, kwds=<optimized out>) at Python/bltinmodule.c:49
#48 0x00007f1317006bcc in ext_do_call (nk=<optimized out>, na=1, flags=<optimized out>, pp_stack=0x7ffe0e799c20, func=0x7f13174fcfc8) at Python/ceval.c:4345
#49 PyEval_EvalFrameEx (f=f
entry=0x7f12d63137d0, throwflag=throwflag
entry=0) at Python/ceval.c:2720
#50 0x00007f1317007a9c in PyEval_EvalCodeEx (co=<optimized out>, globals=<optimized out>, locals=locals
entry=0x0, args=args
entry=0x7f12cb822ba8, argcount=5, kws=kws
entry=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3267
#51 0x00007f1316f8176c in function_call (func=0x7f1304169320, arg=0x7f12cb822b90, kw=0x0) at Objects/funcobject.c:526
#52 0x00007f1316f50e03 in PyObject_Call (func=func
entry=0x7f1304169320, arg=arg
entry=0x7f12cb822b90, kw=<optimized out>) at Objects/abstract.c:2529
#53 0x00007f1317000937 in PyEval_CallObjectWithKeywords (func=func
entry=0x7f1304169320, arg=arg
entry=0x7f12cb822b90, kw=kw
entry=0x0) at Python/ceval.c:3904
#54 0x00007f131700441f in PyEval_EvalFrameEx (f=f
entry=0x7f12d2d37c90, throwflag=throwflag
entry=0) at Python/ceval.c:2348
#55 0x00007f1317007a9c in PyEval_EvalCodeEx (co=co
entry=0x7f12cb83e4b0, globals=globals
entry=0x7f12cb82d398, locals=locals
entry=0x7f12cb82d398, args=args
entry=0x0, argcount=argcount
entry=0, kws=kws
entry=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3267
#56 0x00007f1317007b99 in PyEval_EvalCode (co=co
entry=0x7f12cb83e4b0, globals=globals
entry=0x7f12cb82d398, locals=locals
entry=0x7f12cb82d398) at Python/ceval.c:669
#57 0x00007f131701b020 in PyImport_ExecCodeModuleEx (name=name
entry=0x131b5ed0 "scipy.optimize", co=co
entry=0x7f12cb83e4b0, pathname=pathname
entry=0x131bbe50 "/root/sw/slc7_x86-64/Python-modules/1.0-1/lib/python2.7/site-packages/scipy/optimize/__init__.pyc") at Python/import.c:713
#58 0x00007f131701b386 in load_source_module (name=0x131b5ed0 "scipy.optimize", pathname=0x131bbe50 "/root/sw/slc7_x86-64/Python-modules/1.0-1/lib/python2.7/site-packages/scipy/optimize/__init__.pyc", fp=<optimized out>) at Python/import.
c:1103
#59 0x00007f131701c964 in load_package (name=0x131b5ed0 "scipy.optimize", pathname=<optimized out>) at Python/import.c:1170
#60 0x00007f131701c3c1 in import_submodule (mod=mod
entry=0x7f13034701d8, subname=subname
entry=0x131b5ed6 "optimize", fullname=fullname
entry=0x131b5ed0 "scipy.optimize") at Python/import.c:2704
#61 0x00007f131701d2fb in load_next (p_buflen=<synthetic pointer>, buf=0x131b5ed0 "scipy.optimize", p_name=<synthetic pointer>, altmod=0x7f13034701d8, mod=0x7f13034701d8) at Python/import.c:2519
#62 import_module_level (locals=<optimized out>, level=<optimized out>, fromlist=<optimized out>, globals=<optimized out>, name=<optimized out>) at Python/import.c:2236
#63 PyImport_ImportModuleLevel (name=<optimized out>, globals=<optimized out>, locals=<optimized out>, fromlist=<optimized out>, level=<optimized out>) at Python/import.c:2292
#64 0x00007f1316ffede8 in builtin___import__ (self=<optimized out>, args=<optimized out>, kwds=<optimized out>) at Python/bltinmodule.c:49
#65 0x00007f1317006bcc in ext_do_call (nk=<optimized out>, na=1, flags=<optimized out>, pp_stack=0x7ffe0e79a340, func=0x7f13174fcfc8) at Python/ceval.c:4345
#66 PyEval_EvalFrameEx (f=f
entry=0x7f12d6313d70, throwflag=throwflag
entry=0) at Python/ceval.c:2720
#67 0x00007f1317007a9c in PyEval_EvalCodeEx (co=<optimized out>, globals=<optimized out>, locals=locals
entry=0x0, args=args
entry=0x7f12fe7c6748, argcount=4, kws=kws
entry=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3267
#68 0x00007f1316f8176c in function_call (func=0x7f1304169320, arg=0x7f12fe7c6730, kw=0x0) at Objects/funcobject.c:526
#69 0x00007f1316f50e03 in PyObject_Call (func=func
entry=0x7f1304169320, arg=arg
entry=0x7f12fe7c6730, kw=<optimized out>) at Objects/abstract.c:2529
#70 0x00007f1317000937 in PyEval_CallObjectWithKeywords (func=func
entry=0x7f1304169320, arg=arg
entry=0x7f12fe7c6730, kw=kw
entry=0x0) at Python/ceval.c:3904
#71 0x00007f131700441f in PyEval_EvalFrameEx (f=f
entry=0x7f12d6313b90, throwflag=throwflag
entry=0) at Python/ceval.c:2348
#72 0x00007f1317007a9c in PyEval_EvalCodeEx (co=co
entry=0x7f12cb83e3b0, globals=globals
entry=0x7f12cb829d70, locals=locals
entry=0x7f12cb829d70, args=args
entry=0x0, argcount=argcount
entry=0, kws=kws
entry=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3267
#73 0x00007f1317007b99 in PyEval_EvalCode (co=co
entry=0x7f12cb83e3b0, globals=globals
entry=0x7f12cb829d70, locals=locals
entry=0x7f12cb829d70) at Python/ceval.c:669
#74 0x00007f131701b020 in PyImport_ExecCodeModuleEx (name=name
entry=0x1332c940 "shipPatRec", co=co
entry=0x7f12cb83e3b0, pathname=pathname
entry=0x131e0580 "/root/sw/slc7_x86-64/FairShip/master-1/python/shipPatRec.py") at Python/import.c:713
#75 0x00007f131701b386 in load_source_module (name=0x1332c940 "shipPatRec", pathname=0x131e0580 "/root/sw/slc7_x86-64/FairShip/master-1/python/shipPatRec.py", fp=<optimized out>) at Python/import.c:1103
#76 0x00007f131701c3c1 in import_submodule (mod=mod
entry=0x7f13172c8de0 <_Py_NoneStruct>, subname=subname
entry=0x1332c940 "shipPatRec", fullname=fullname
entry=0x1332c940 "shipPatRec") at Python/import.c:2704
#77 0x00007f131701d24c in load_next (p_buflen=<synthetic pointer>, buf=0x1332c940 "shipPatRec", p_name=<synthetic pointer>, altmod=0x7f13172c8de0 <_Py_NoneStruct>, mod=0x7f13172c8de0 <_Py_NoneStruct>) at Python/import.c:2519
#78 import_module_level (locals=<optimized out>, level=<optimized out>, fromlist=0x7f13172c8de0 <_Py_NoneStruct>, globals=<optimized out>, name=0x0) at Python/import.c:2228
#79 PyImport_ImportModuleLevel (name=0x7f12cb82a624 "shipPatRec", globals=<optimized out>, locals=<optimized out>, fromlist=0x7f13172c8de0 <_Py_NoneStruct>, level=<optimized out>) at Python/import.c:2292
#80 0x00007f1316ffede8 in builtin___import__ (self=<optimized out>, args=<optimized out>, kwds=<optimized out>) at Python/bltinmodule.c:49
#81 0x00007f1317006bcc in ext_do_call (nk=<optimized out>, na=1, flags=<optimized out>, pp_stack=0x7ffe0e79aa20, func=0x7f13174fcfc8) at Python/ceval.c:4345
#82 PyEval_EvalFrameEx (f=f
entry=0x7f12d63135f0, throwflag=throwflag
entry=0) at Python/ceval.c:2720
#83 0x00007f1317007a9c in PyEval_EvalCodeEx (co=<optimized out>, globals=<optimized out>, locals=locals
entry=0x0, args=args
entry=0x7f12fe7c6220, argcount=4, kws=kws
entry=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3267
#84 0x00007f1316f8176c in function_call (func=0x7f1304169320, arg=0x7f12fe7c6208, kw=0x0) at Objects/funcobject.c:526
#85 0x00007f1316f50e03 in PyObject_Call (func=func
entry=0x7f1304169320, arg=arg
entry=0x7f12fe7c6208, kw=<optimized out>) at Objects/abstract.c:2529
#86 0x00007f1317000937 in PyEval_CallObjectWithKeywords (func=func
entry=0x7f1304169320, arg=arg
entry=0x7f12fe7c6208, kw=kw
entry=0x0) at Python/ceval.c:3904
#87 0x00007f131700441f in PyEval_EvalFrameEx (f=f
entry=0x7f12d2d1a730, throwflag=throwflag
entry=0) at Python/ceval.c:2348
#88 0x00007f1317007a9c in PyEval_EvalCodeEx (co=co
entry=0x7f12cb83b030, globals=globals
entry=0x7f12cd9f1e88, locals=locals
entry=0x7f12cd9f1e88, args=args
entry=0x0, argcount=argcount
entry=0, kws=kws
entry=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3267
#89 0x00007f1317007b99 in PyEval_EvalCode (co=co
entry=0x7f12cb83b030, globals=globals
entry=0x7f12cd9f1e88, locals=locals
entry=0x7f12cd9f1e88) at Python/ceval.c:669
#90 0x00007f131701b020 in PyImport_ExecCodeModuleEx (name=name
entry=0x131ac750 "shipDigiReco", co=co
entry=0x7f12cb83b030, pathname=pathname
entry=0x131ba600 "/root/sw/slc7_x86-64/FairShip/master-1/python/shipDigiReco.py") at Python/import.c:713
#91 0x00007f131701b386 in load_source_module (name=0x131ac750 "shipDigiReco", pathname=0x131ba600 "/root/sw/slc7_x86-64/FairShip/master-1/python/shipDigiReco.py", fp=<optimized out>) at Python/import.c:1103
#92 0x00007f131701c3c1 in import_submodule (mod=mod
entry=0x7f13172c8de0 <_Py_NoneStruct>, subname=subname
entry=0x131ac750 "shipDigiReco", fullname=fullname
entry=0x131ac750 "shipDigiReco") at Python/import.c:2704
#93 0x00007f131701d24c in load_next (p_buflen=<synthetic pointer>, buf=0x131ac750 "shipDigiReco", p_name=<synthetic pointer>, altmod=0x7f13172c8de0 <_Py_NoneStruct>, mod=0x7f13172c8de0 <_Py_NoneStruct>) at Python/import.c:2519
#94 import_module_level (locals=<optimized out>, level=<optimized out>, fromlist=0x7f13172c8de0 <_Py_NoneStruct>, globals=<optimized out>, name=0x0) at Python/import.c:2228
#95 PyImport_ImportModuleLevel (name=0x7f13173952bc "shipDigiReco", globals=<optimized out>, locals=<optimized out>, fromlist=0x7f13172c8de0 <_Py_NoneStruct>, level=<optimized out>) at Python/import.c:2292
#96 0x00007f1316ffede8 in builtin___import__ (self=<optimized out>, args=<optimized out>, kwds=<optimized out>) at Python/bltinmodule.c:49
#97 0x00007f1317006bcc in ext_do_call (nk=<optimized out>, na=1, flags=<optimized out>, pp_stack=0x7ffe0e79b100, func=0x7f13174fcfc8) at Python/ceval.c:4345
#98 PyEval_EvalFrameEx (f=f
entry=0x7f1303913d70, throwflag=throwflag
entry=0) at Python/ceval.c:2720
#99 0x00007f1317007a9c in PyEval_EvalCodeEx (co=<optimized out>, globals=<optimized out>, locals=locals
entry=0x0, args=args
entry=0x7f12cd9e8cc8, argcount=4, kws=kws
entry=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3267
#100 0x00007f1316f8176c in function_call (func=0x7f1304169320, arg=0x7f12cd9e8cb0, kw=0x0) at Objects/funcobject.c:526
#101 0x00007f1316f50e03 in PyObject_Call (func=func
entry=0x7f1304169320, arg=arg
entry=0x7f12cd9e8cb0, kw=<optimized out>) at Objects/abstract.c:2529
#102 0x00007f1317000937 in PyEval_CallObjectWithKeywords (func=func
entry=0x7f1304169320, arg=arg
entry=0x7f12cd9e8cb0, kw=kw
entry=0x0) at Python/ceval.c:3904
#103 0x00007f131700441f in PyEval_EvalFrameEx (f=f
entry=0x7f131749ac50, throwflag=throwflag
entry=0) at Python/ceval.c:2348
#104 0x00007f1317007a9c in PyEval_EvalCodeEx (co=co
entry=0x7f13173eaab0, globals=globals
entry=0x7f131749e168, locals=locals
entry=0x7f131749e168, args=args
entry=0x0, argcount=argcount
entry=0, kws=kws
entry=0x0, kwcount=0, defs=0x0, defcount=0, closure=0x0) at Python/ceval.c:3267
#105 0x00007f1317007b99 in PyEval_EvalCode (co=co
entry=0x7f13173eaab0, globals=globals
entry=0x7f131749e168, locals=locals
entry=0x7f131749e168) at Python/ceval.c:669
#106 0x00007f131702c19a in run_mod (arena=0x202e930, flags=0x7ffe0e79b5d0, locals=0x7f131749e168, globals=0x7f131749e168, filename=0x1ffa690 "240241031002", mod=<optimized out>) at Python/pythonrun.c:1371
#107 PyRun_FileExFlags (fp=fp
entry=0x1ffa690, filename=filename
entry=0x7ffe0e79c1ba "/root/sw/slc7_x86-64/FairShip/master-1/macro/ShipReco.py", start=start
entry=257, globals=globals
entry=0x7f131749e168, locals=locals
entry=0x7f131749e168, closeit=closeit
entry=1, flags=0x7ffe0e79b5d0) at Python/pythonrun.c:1357
#108 0x00007f131702d575 in PyRun_SimpleFileExFlags (fp=fp
entry=0x1ffa690, filename=0x7ffe0e79c1ba "/root/sw/slc7_x86-64/FairShip/master-1/macro/ShipReco.py", closeit=closeit
entry=1, flags=flags
entry=0x7ffe0e79b5d0) at Python/pythonrun.c:949
#109 0x00007f131702dc33 in PyRun_AnyFileExFlags (fp=fp
entry=0x1ffa690, filename=<optimized out>, closeit=closeit
entry=1, flags=flags
entry=0x7ffe0e79b5d0) at Python/pythonrun.c:753
#110 0x00007f13170439b1 in Py_Main (argc=<optimized out>, argv=<optimized out>) at Modules/main.c:640
#111 0x00007f131622e3d5 in __libc_start_main () from /lib64/libc.so.6
#112 0x000000000040064e in _start ()
===========================================================

Cheers,
Simone

Hi Simone,

ROOT prints the stacktrace - but otherwise I don’t see where it’s involved?

After setting things up, can you import scipy.optimize.minpack2? Either way this looks more like an issue for the SHiP software folks to first digest - we can take over once we understand ROOT’s role in this better!

Cheers, Axel.

Indeed I was guessing the ROOT was not responsible for this.

Thanks! Indeed, the import of scipy.optimize.minpack2 is what is causing problem.

Eventually I will report back with what I find.

Thanks!
Simone

I was able to reduce the impact of the crash in this diff:

Adding any of the input that I comment out make python crash, with the stacktrace before.

Keep investigating,

Alright, I was able to make it much much smaller.

import scipy
import ROOT

#anyone of the following scipy.integrate will cause a SEGFAULT, I guess other as well
import scipy.integrate
#from scipy.integrate import quad, dblquad
#from scipy.integrate import quad
#from scipy.integrate import dblquad

Removing the inport of ROOT make it works, while importing ROOT causes SEGMFAULT.

Also, removing the first import of scipy make everything works.

>>> scipy.__name__
'scipy'
>>> scipy.__version__ 
'0.17.1'

Are there rules to use ROOT with scipy?

Is there something I should look out for when building the software?

@etejedor can you have a look here?

Hi Simone,

Some time ago someone opened this ticket:

https://sft.its.cern.ch/jira/browse/ROOT-9153

It was some interference between ROOT and scipy for an old version of scipy, which looks the same as your case (I reproduced the error with 0.18.1, you are using an even older one 0.17.1). At that time I tried with 1.0.0 and the error was gone, the latest version seems to be 1.3.0 now. Would it be possible for you to upgrade the old version you have of scipy?

Hi Enric,

I will ask the experiment and see what it can be done.

However, I witness a version where the problem does not arise. I am pretty confident that the version of scipy is the same, not completely sure but I can check.

I agree that it would be better to upgrade scipy, but I am not sure how feasible is this.

I will report back!

Thanks guys :slight_smile:

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