Re: Severe problem with PyRoot - file segmentation fault

From: <WLavrijsen_at_lbl.gov>
Date: Fri, 13 Jun 2008 15:37:24 -0700


James,

> Program received signal SIGSEGV, Segmentation fault.
> [Switching to Thread -1208592704 (LWP 6011)]
> 0x006dabe0 in main_arena () from /lib/tls/libc.so.6

no, unfortunately, that doesn't add. Just the same info as the a double delete.

There are two things that I can think of that cause this. First, given all the "already added to TClassTable" messages, libraries could be in multiple linker namespaces (this is what happens on the Mac; looking at the linux dynamic linker source, I see that at least it can do the same thing, but I wouldn't know what causes it). These multiple libs, in particular libCore dupes will yield multiple global variables, and those crash in cleanup on application shutdown.

Could you run the sample with the LD_DEBUG environment variable set to 'files'? That way, if libs such as libHist.so and libCore.so are loaded multiple times, it should show up in the output.

Other option is that (for same reasons like above), the TH1F is deleted twice. Can you add a line:

 from ROOT import SetOwnership
 SetOwnership( g, False )

with 'g' being the test histogram and rerun? Normally, ROOT objects, such as the TFile f in your example program, communicate when objects go away. If there are multiple copies of globals, due to multiple libs being loaded, that may not work as intended.

Thanks,

     Wim

-- 
Wim.Lavrijsen_at_cern.ch   --   WLavrijsen_at_lbl.gov   --   www.lavrijsen.net

"Your day will be somewhat dictated by authority."      --fortune cookie
Received on Sat Jun 14 2008 - 00:33:57 CEST

This archive was generated by hypermail 2.2.0 : Sat Jun 14 2008 - 05:50:03 CEST