Re: [ROOT] Signal handlers and the like

From: Konstantin Olchanski (olchansk@sam.triumf.ca)
Date: Fri Jan 09 2004 - 21:23:32 MET


On Fri, Jan 09, 2004 at 06:26:38PM +0100, Valeriy Onuchin wrote:
> > I'm using ROOT as a library for a set of external applications.
> > It seems that ROOT automatically installs some signal handlers...
> > Is there any way of stopping this behaviour?
>
> you can add and remove signal handlers by using
> http://root.cern.ch/root/html310/TSystem.html#TSystem:AddSignalHandler
> http://root.cern.ch/root/html310/TSystem.html#TSystem:RemoveSignalHandler
>

We have the same problem: ROOT libraries install unwanted signal handlers.

One solution is to modify the current behaviour:
 - the ROOT "toolkit" installs NO signal handlers
 - the ROOT "application" installs whatever handlers it does now.

In related news, I think some of the ROOT signal handlers are bogus. For
example the Ctrl-C handler makes it very hard to kill the ROOT application.

I am using the latest release (3.10.2) to process ROOT trees using
a bog standard TSelector. When I am looping over a tree, pressing Ctrl-C
does one of several things, randomly (none of them Do What I Mean, that is,
stop the program, return me to the shell prompt):
 - print a message: "ctrl-C pressed", then continue processing the tree,
 - produce a core dump,
 - produce a ROOT stack trace (+ a core dump, sometimes?)
 - give a "root>" prompt. Entering ".q" 
 - hard hang ROOT

Then the ROOT code to print stack traces often gets confused and
hangs or crashes with a core dump.

That said, I would prefer if the ROOT application did not install any
fancy-shmancy signal handlers, too.

-- 
Konstantin Olchanski
Data Acquisition Systems: The Bytes Must Flow!
Email: olchansk-at-triumf-dot-ca
Snail mail: 4004 Wesbrook Mall, TRIUMF, Vancouver, B.C., V6T 2A3, Canada



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:05 MET