Re: TGeoManager hanging in TBrowser

From: Clark McGrew <clark.mcgrew_at_sunysb.edu>
Date: Thu, 01 Jun 2006 12:10:15 -0400


Dear Root Talk,

I've further isolated the reason that the TGeoManager::Streamer is hanging when accessed via the TBrowser icon box on our system. I've check this behavior with 5.08.00b, 5.10.00c, and the most recent 5.11/06 development release.

The symptoms are that when a TGeoManager object is read by clicking through the TRootBrowser icon box, the TGeoManager::Streamer recurses through a call to TBrowser::Refresh() at line 1854 of TGeoManager.cxx. I've attached a gdb stack dump showing the call sequence during the second call to TGeoManager::Streamer(). The sequence of mouse operations is described below.

When the TGeoManager object is read by clicking through the TRootBrowser list tree, TGeoManager::Streamer completes successfully. I've attached a stack dump of showing the call sequence during the only call to TGeoManager::Streamer(), including a transcript of the root session.

The difference between the two sequences is that access through TRootBrowser::ListTreeHighlight() is successful, and TRootBrowser::IconBoxAction() fails. I think the basic difference in the situations is that IconBoxAction emits a BrowseObj signal.

The apparent solution is to remove line 1854 from TGeoManager.cxx(TGeoManager::CloseGeometry). This line reads

while ((browser=(TBrowser*)next())) browser->Refresh();

With this line removed, geometry browsing appears to work correctly.

-Best Regards,

Clark

On Wed, 2006-05-31 at 21:29 +0200, Rene Brun wrote:
> Hi,
>
> I cannot reproduce your problem.
> I can click on any object on the right pane and draw it, eg
> MasterVolume ->DA->Magnet->LeftCham and view any of the FluxReturn_pv_
> objects.
>
> Could you indicate a very precise sequence of operations to reproduce
> the problem?
>
> Rene Brun
>
>
> Clark McGrew wrote:
> > Hello,
> >
> > I'm running into a problem opening TGeoManager objects using TBrowser.
> > For instance, I save a closed TGeoManager object to an output file using
> > TGeoManager::Export()
> >
> > [build the geometry]
> > gGeoManager->CloseGeometry("di");
> > gGeoManager->Export("ND280Geometry.root");
> >
> > and then open the exported file from the command line and create a
> > browser
> >
> > $ root ND280Geometry.root
> > root [1] new TBrowser
> >
> > If I click through the "All Folders" panel on the left side of the
> > browser, I can browse the geometry without any problems (i.e. double
> > click "ROOT Files", double click "ND280Geometry.root", single click
> > "ND280Geometry") . I get the following messages:
> >
> >
> >> Info in <TGeoManager::CloseGeometry>: Geometry loaded from file...
> >> Warning in <TGeoHMatrix::RegisterYourself>: cannot register without geometry
> >> Info in <TGeoManager::SetTopVolume>: Top volume is t2k. Master volume is t2k
> >> Info in <TGeoManager::CloseGeometry>: Voxelization retrieved from file
> >> Info in <TGeoManager::BuildCache>: --- Maximum geometry depth is 11
> >> --- node ID tracking disabled
> >> Info in <TGeoManager::CloseGeometry>: 47785 nodes/ 318 volume UID's in ND280 Detector Geometry
> >> Info in <TGeoManager::CloseGeometry>: ----------------modeler ready----------------
> >>
> >
> > The warning is a bit disturbing, but seems to be harmless. I can then
> > browse the geometry.
> >
> > However, if I use the "Contents of" window on the right side of the
> > browser, ROOT hangs while using 100% of the CPU, and apparently trying
> > to allocate huge chunks of memory (i.e. double click "ROOT FIles",
> > double click "ND280Geometry.root", double click "ND280Geometry" in the
> > "Contents of /ROOT Files/ND280Geometry.root" panel). There are no error
> > messages or warnings, and the only way I've found to recover is to leave
> > X windows and kill the root.exe process by hand.
> >
> > If anybody has insight on how to track down the problem, or if this is a
> > root bug, help will be very much appreciated!
> >
> > I'm using root 5.10/00c compiled from source on Debian Linux and have
> > placed a ROOT file with a TGeoManager object demonstrating the problem
> > at
> >
> > <http://nngroup.physics.sunysb.edu/~mcgrew/ND280Geometry.root>
> >
> > Thanks you very much in advance for any help.
> >
> > Best Regards,
> >
>

-- 
Clark McGrew                    Univ. at Stony Brook, Physics and Astronomy
<clark.mcgrew_at_stonybrook.edu>   631-632-8299

#0 0xb5c138e4 in TGeoManager::Streamer () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libGeom.so #1 0xb782eaa6 in TKey::ReadObj () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libCore.so.5.10 #2 0xb782d14a in TKey::Browse () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libCore.so.5.10 #3 0xb6178cd5 in TRootBrowser::BrowseObj () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libGui.so #4 0xb6174705 in TRootBrowser::Refresh () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libGui.so #5 0xb7808363 in TBrowser::Refresh () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libCore.so.5.10 #6 0xb5c133f7 in TGeoManager::CloseGeometry () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libGeom.so #7 0xb5c13951 in TGeoManager::Streamer () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libGeom---Type <return> to continue, or q <return> to quit--- .so #8 0xb782eaa6 in TKey::ReadObj () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libCore.so.5.10 #9 0xb781c088 in TDirectory::Get () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libCore.so.5.10 #10 0xb786154f in TROOT::FindObject () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libCore.so.5.10 #11 0xb617c565 in TRootBrowser::IconBoxAction () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libGui.so #12 0xb617d897 in TRootBrowser::ProcessMessage () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libGui.so #13 0xb60edf12 in TGFrame::HandleClientMessage () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libGui.so #14 0xb60f035c in TGMainFrame::HandleClientMessage () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libGui.so #15 0xb60f06b8 in TGFrame::HandleEvent () ---Type <return> to continue, or q <return> to quit--- from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libGui.so #16 0xb60c30bf in TGClient::HandleEvent () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libGui.so #17 0xb60c3145 in TGClient::ProcessOneEvent () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libGui.so #18 0xb60c31ee in TGClient::HandleInput () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libGui.so #19 0xb60c3224 in TGInputHandler::Notify () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libGui.so #20 0xb7960c22 in TUnixSystem::DispatchOneEvent () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libCore.so.5.10 #21 0xb787b420 in TSystem::InnerLoop () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libCore.so.5.10 #22 0xb787b3bf in TSystem::Run () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libCore.so.5.10 ---Type <return> to continue, or q <return> to quit--- #23 0xb77fdb80 in TApplication::Run () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libCore.so.5.10 #24 0xb691e86d in TRint::Run () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libRint.so.5.10 #25 0x08048d71 in main ()

#0 0xb5cb88e4 in TGeoManager::Streamer () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libGeom.so #1 0xb78d3aa6 in TKey::ReadObj () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libCore.so.5.10 #2 0xb78c1088 in TDirectory::Get () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libCore.so.5.10 #3 0xb790654f in TROOT::FindObject () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libCore.so.5.10 #4 0xb621b9ea in TRootBrowser::ListTreeHighlight () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libGui.so #5 0xb622247f in TRootBrowser::ProcessMessage () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libGui.so #6 0xb6192f12 in TGFrame::HandleClientMessage () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libGui.so #7 0xb619535c in TGMainFrame::HandleClientMessage () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libGui.---Type <return> to continue, or q <return> to quit--- so #8 0xb61956b8 in TGFrame::HandleEvent () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libGui.so #9 0xb61680bf in TGClient::HandleEvent () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libGui.so #10 0xb6168145 in TGClient::ProcessOneEvent () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libGui.so #11 0xb61681ee in TGClient::HandleInput () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libGui.so #12 0xb6168224 in TGInputHandler::Notify () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libGui.so #13 0xb7a05c22 in TUnixSystem::DispatchOneEvent () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libCore.so.5.10 #14 0xb7920420 in TSystem::InnerLoop () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libCore.so.5.10 #15 0xb79203bf in TSystem::Run () ---Type <return> to continue, or q <return> to quit--- from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libCore.so.5.10 #16 0xb78a2b80 in TApplication::Run () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libCore.so.5.10 #17 0xb69c386d in TRint::Run () from /home/mcgrew/work/t2k/nd280rep/ROOT/v5r10p00/Linux-i686/lib/root/libRint.so.5.10 #18 0x08048d71 in main () mcgrew_at_boxer:inputs$ root ND280Geometry.root ******************************************* * * * W E L C O M E to R O O T * * * * Version 5.10/00c 31 March 2006 * * * * You are welcome to visit our Web site * * http://root.cern.ch * * * ******************************************* FreeType Engine v2.1.9 used to render TrueType fonts. Compiled on 31 May 2006 for linuxdeb with thread support. CINT/ROOT C/C++ Interpreter version 5.16.8, February 9, 2006 Type ? for help. Commands must be C++ statements. Enclose multiple statements between { }. root [0] Attaching file ND280Geometry.root as _file0... root [1] new TBrowser (class TBrowser*)0x924aed0 root [2] Info in <TGeoManager::Streamer>: Read TGeoManager Info in <TGeoManager::CloseGeometry>: Starting process... Info in <TGeoManager::CloseGeometry>: Refresh... Info in <TGeoManager::CloseGeometry>: Refresh Done... Info in <TGeoManager::CloseGeometry>: Geometry loaded from file... Warning in <TGeoHMatrix::RegisterYourself>: cannot register without geometry Info in <TGeoManager::SetTopVolume>: Top volume is t2k. Master volume is t2k Info in <TGeoManager::CloseGeometry>: Voxelization retrieved from file Info in <TGeoManager::BuildCache>: --- Maximum geometry depth is 11 --- node ID tracking disabled Info in <TGeoManager::CloseGeometry>: 47785 nodes/ 318 volume UID's in ND280 Detector Geometry Info in <TGeoManager::CloseGeometry>: ----------------modeler ready---------------- root [2] .q This is the end of ROOT -- Goodbye mcgrew_at_boxer:inputs$

Received on Thu Jun 01 2006 - 18:11:54 MEST

This archive was generated by hypermail 2.2.0 : Mon Jan 01 2007 - 16:31:58 MET