On one of my machines, the default gsl error handler is used in ROOT, so that when my Python program encounters a gsl error, it crashes like so:
gsl: /home/aharel/downloads/build_root_5.34.36/GSL-prefix/src/GSL/integration/qags.c:563: ERROR: integral is divergent, or slowly convergent
Default GSL error handler invoked.
Aborted (core dumped)
The same code runs fine on another machine, where GSLError.h does what it’s supposed to and avoids the default gsl error handler, so it goes something like:
Error in <GSLError>: Error 22 in qags.c at 563 : integral is divergent, or slowly convergent
with no crash. My code can easily detector the error and handle it. All’s well.
Both are linux machines.
The problematic one is a Fedora 23 desktop, which displays this behavior both with the system-wide ROOT 5.34.36. I also re-installed this version from source locally with cmake, to try and avoid this problem, and run into the same problem. The cmake configuration was done as:
GSL_DIR=/usr/lib64
cmake -Dbuiltin_gsl=ON -Dminuit2=ON -Droofit=ON -Dunuran=ON -Dmathmore=ON ../root_5.34.36
The working machine is a gentoo Linux machine, with ROOT version 5.34.32.
I don’t see how I can override the GSL error handler. Just turning it off would be great, but how do I access it through PyROOT? (or for that matter, through the CINT command line)
Any ideas what configuration / installation issues led to this?
Any ideas how to figure any of this out?
thanks,
Amnon