[Gate-users] Re : Problem of "Magic" line to avoid "TVirtualStreamerInfo" problem with ROOT plugin!

Samuel BURG samuel_burg at yahoo.fr
Thu Apr 8 17:19:35 CEST 2010


All right,

auto-answer to my post.

Recall of the issue "TVirtualStreamerInfo" :
Gate stop and crash with message :
Error in <TPluginManager::FindHandler>: Cannot find plugin handler for TVirtualStreamerInfo! Does $ROOTSYS/etc/plugins/TVirtualStreamerInfo exist?
exactly when Gate try to write in ROOT file format.

after a long time of compilation on 4 different nodes on my cluster,
after the lost of half my hairs,
after killing almost everyone around me,

I found a partial solution.

The issue is with ROOT.
There is the same problem for all version or ROOT since years (at least since 2005) and also for other software, not only Gate.


The point is :
 - when you install GATE for a cluster you want to build GATE and all libs only on time, and then you shared the exec among each nodes
 - so this way, it's better to make STATIC build, and not DYNAMIC libraries
 - you usually also need to force the directory where to build and where to install all the stuff (not /usr/lib and so on)
 - but ....
 - there is a sort of bug in ROOT with the STATIC build :
    - if you use the "--prefix=/mydir/toto/blabla" flag when issuing the ./configure command of ROOT
    - it switch the ROOT build in STATIC mode
    - good ... but ...
    - ROOT still need to load some DYNAMIC part on runtime !!! DYNAMIC part you have not builded as you where in STATIC mode :-((
    - it is specifically the point explained here :
        http://article.gmane.org/gmane.comp.lang.c%2B%2B.root/9069
       "Problem is, that ROOT tries to be clever and load the non-existent shared library RIO which isn't there because you built statically." 

The bad point for me is ... I have already notice this issue 5 years ago when building gate 3.0 ... I have just forgot it ... shame on me.

So the solution is easy .... build ROOT the DYNAMIC way, for example don't use the --prefix option. It solve the plugin handler for TVirtualStreamerInfo issue.

Even if you want to use the build on a cluster (NFS or other way to shared the bin+libs among nodes) you can build ROOT dynamically, 
I don't know why (for me, basically it should crash because of ROOT) but Gate seems to work on each node this way.
Maybe ROOT default install directory is not system wide install in directory like /usr/bin /usr/lib but local install in current directory, this is the only explanation for me.

Best regards, and sorry for noise.

@ Sebastien Jan : is there a smart way to avoid this bug ?

-----------------------------------------------------------
Samuel Burg


Mail : <samuel_burg at yahoo.fr>
-----------------------------------------------------------
"Aw, come on, who would be so stupid as to insert a cast
to make an error go away without actually fixing the error?"
Apparently everyone. 
-- Raymond Chen --
-----------------------------------------------------------




________________________________
De : Samuel BURG <samuel_burg at yahoo.fr>
À : sebnem erturk <sebnem.erturk at gmail.com>; Sebastien JAN <sebastien.jan at cea.fr>; Simon Stute <stute at imnc.in2p3.fr>
Cc : gate-users at lists.opengatecollaboration.org
Envoyé le : Mer 7 avril 2010, 19 h 07 min 18 s
Objet : [Gate-users] Problem of "Magic" line to avoid "TVirtualStreamerInfo" problem with ROOT plugin!

Hi,

Have you solve your problem ?

I have exactly the same issue, with Gate 5.0.p01, Root 5.20, Ubuntu 9.10 server x86

The crazy point is :
- I have 10 nodes on a cluster
- node "01" compile all the stuff
- node "02" to "09" execute the stuff
- the bug occurred on all nodes (even node "01") but NOT on node "02" !!!!  
- all the nodes are installed the same way, same version, same hardware ...
- cluster is manage with condor/webmin/ganglia/nfs

So it turn me crazy !

Thank you for any help.

-----------------------------------------------------------
Samuel Burg


Mail : <samuel_burg at yahoo.fr>
-----------------------------------------------------------
"Aw, come on, who would be so stupid as to insert a cast
to make an error go away without actually fixing the error?"
Apparently everyone. 
-- Raymond Chen --
-----------------------------------------------------------




________________________________
De : sebnem erturk <sebnem.erturk at gmail.com>
À : Sebastien JAN <sebastien.jan at cea.fr>
Cc : gate-users at lists.opengatecollaboration.org
Envoyé le : Ven 19 mars 2010, 15 h 12 min 25 s
Objet : [Gate-users] Problem of "Magic" line to avoid problem with ROOT plugin!

Hi Sebastian,

We are trying to compile Gate_v4.0 with ROOT5.26  on debian 64 bit machine.
We have to use root5.26 because the other root versions are not compiling
properly.

Sometime ago, we tried to modify Gate.cc file under gate_v4, because we had
a problem TStreamerInfo, by adding the following lines

178   // "Magic" line to avoid problem with ROOT plugin. It is useful when
    179   // compiling Gate on a given system and executing it remotely on
    180   // another (grid or cluster).  See
    181   // http://root.cern.ch/root/roottalk/roottalk08/0690.html
    182   // DS.
    183   gROOT->GetPluginManager()->
AddHandler("TVirtualStreamerInfo", "*",
    184                                         "TStreamerInfo", "RIO",
"TStreamerInfo()");
    185


However the modification issues gives below error messages, the modified
Gate.cc file of Gate4.0 by us is also in attached.

Could you please give us guidance, how should add those lines above to
Gate.cc file under Gate4.0?


Compiling Gate.cc ...
Gate.cc: In function 'int main(int, char**)':
Gate.cc:173: error: invalid use of incomplete type 'struct TPluginManager'
/home/gate/root5.26/include/TROOT.h:48: error: forward declaration of
'struct TPluginManager'
/home/gate/2.0.3.2/CLHEP/include/CLHEP/Units/PhysicalConstants.h: At global
scope:
/home/gate/2.0.3.2/CLHEP/include/CLHEP/Units/PhysicalConstants.h:78:
warning: 'CLHEP::electron_charge' defined but not used
/home/gate/2.0.3.2/CLHEP/include/CLHEP/Random/Randomize.h:67: warning:
'CLHEP::HepRandomGenActive' defined but not used
make: *** [tmp/Linux-g++/Gate/exe/Gate.o] Error 1


regards,
sebnem


On Fri, Mar 19, 2010 at 6:34 AM, JAN Sebastien <sebastien.jan at cea.fr> wrote:

>
> Hi,
>
> It's not possible to do that with a ray tracing approach.
> But you can use the ARF (analytic response function) to speed up your
> collimator tracking. See the users guide for details.
> Cheers
> Seb
>
> ________________________________
>
> De: gate-users-bounces at lists.opengatecollaboration.org de la part de
> sebnem erturk
> Date: jeu. 18/03/2010 21:45
> À: gate-users at lists.opengatecollaboration.org
> Objet : [Gate-users] simulation of penetration and scatter inside
> thecollimator septa
>
>
>
> Hi All,
>
> By using GATE_v6 ,  can we model both penetration and scatter inside the
> collimator septa  like conventional ray tracing simulators??
>
> As far as I know ,we cannot model penetration inside collimator septa with
> Gate_v4., maybe I am wrong?
>
> Thanks for any kind of information?
>
> Regards,
>
> --
> Sebnem
> _______________________________________________
> Gate-users mailing list
> Gate-users at lists.opengatecollaboration.org
> http://lists.opengatecollaboration.org/mailman/listinfo/gate-users
>
>
>


-- 
Sebnem Erturk
University of Pisa
Applied Physics Dpt.
Largo Pontecorvo
56127 Pisa-Italy
Office :0039 050 2214346
Mobile :0039 345 3331440
http://www.df.unipi.it/~fiig/



      
_______________________________________________
Gate-users mailing list
Gate-users at lists.opengatecollaboration.org
http://lists.opengatecollaboration.org/mailman/listinfo/gate-users



      


More information about the Gate-users mailing list