I have a set of classes whose *.C files I use to compile with
gSystem->CompileMacro(char*,“kc”,char*)
and I use to load with
gSystem->Load(char*)
I am using root version 5.18.00 and on lxplus I have no problem. Now I am trying to use these classes on another linux machine where root has been build by us. Compilation is fine but when I load the libraries I got many messages like:
Warning in TClassTable::Add: class TFile already in TClassTable
for many different classes (none of them is a class of mine).
Then If I book, fill and draw a simple histogram I got:
root [3] TH1F h(“h”,“h”,100,0,1)
root [4] h.FillRandom(“gaus”)
root [5] h.Draw() TCanvas::MakeDefCanvas: created default TCanvas with name c1
Warning in TClassTable::Add: class TAttCanvas already in TClassTable
Warning in TClassTable::Add: class TView already in TClassTable
Warning in TClassTable::Add: class TCanvas already in TClassTable
Warning in TClassTable::Add: class TPad already in TClassTable
Warning in TClassTable::Add: class TButton already in TClassTable
Warning in TClassTable::Add: class TControlBar already in TClassTable
Warning in TClassTable::Add: class TClassTree already in TClassTable
Warning in TClassTable::Add: class TColorWheel already in TClassTable
Warning in TClassTable::Add: class TControlBarButton already in TClassTable
Warning in TClassTable::Add: class TDialogCanvas already in TClassTable
Warning in TClassTable::Add: class TGroupButton already in TClassTable
Warning in TClassTable::Add: class TInspectCanvas already in TClassTable
Warning in TClassTable::Add: class TPaveClass already in TClassTable
Warning in TClassTable::Add: class TSlider already in TClassTable
Warning in TClassTable::Add: class TSliderBox already in TClassTable
Warning in TClassTable::Add: class TViewer3DPad already in TClassTable
and, finally, when I quit root , it crashes:
root [6] .q
*** Break *** segmentation violation
(no debugging symbols found)
Using host libthread_db library “/lib/tls/libthread_db.so.1”.
Attaching to program: /proc/23541/exe, process 23541
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
[Thread debugging using libthread_db enabled]
[New Thread -1208908096 (LWP 23541)]
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
(no debugging symbols found)…done.
0x009527a2 in _dl_sysinfo_int80 ()
from /lib/ld-linux.so.2 #1 0x00dcc7d3 in __waitpid_nocancel () from /lib/tls/libc.so.6 #2 0x00d76649 in do_system () from /lib/tls/libc.so.6 #3 0x008798bd in system () from /lib/tls/libpthread.so.0 #4 0x002d45b7 in TUnixSystem::Exec () from /opt/andrea/root/lib/libCore.so #5 0x002d9ef9 in TUnixSystem::StackTrace ()
from /opt/andrea/root/lib/libCore.so #6 0x002d6c6a in TUnixSystem::DispatchSignals ()
from /opt/andrea/root/lib/libCore.so #7 0x002d6cf8 in SigHandler () from /opt/andrea/root/lib/libCore.so #8 0x002d5f5d in sighandler () from /opt/andrea/root/lib/libCore.so #9 #10 0x092776c0 in ?? () #11 0x013097c9 in ft_mem_free () from /opt/andrea/root/lib/libGraf.so #12 0x01306b97 in FT_Done_Library () from /opt/andrea/root/lib/libGraf.so #13 0x01302795 in FT_Done_FreeType () from /opt/andrea/root/lib/libGraf.so #14 0x0125434c in TTF::Cleanup () from /opt/andrea/root/lib/libGraf.so #15 0x012543c0 in TTF::~TTF () from /opt/andrea/root/lib/libGraf.so #16 0x0125509a in __tcf_0 () from /opt/andrea/root/lib/libGraf.so #17 0x00d6c527 in exit () from /lib/tls/libc.so.6 #18 0x002d46b3 in TUnixSystem::Exit () from /opt/andrea/root/lib/libCore.so #19 0x00757451 in TRint::Terminate () from /opt/andrea/root/lib/libRint.so #20 0x0021565f in TApplication::ProcessLine ()
from /opt/andrea/root/lib/libCore.so #21 0x00757194 in TRint::HandleTermInput ()
from /opt/andrea/root/lib/libRint.so #22 0x0075582c in TTermInputHandler::Notify ()
from /opt/andrea/root/lib/libRint.so #23 0x00757a42 in TTermInputHandler::ReadNotify ()
from /opt/andrea/root/lib/libRint.so #24 0x002d2f42 in TUnixSystem::CheckDescriptors ()
from /opt/andrea/root/lib/libCore.so #25 0x002d7148 in TUnixSystem::DispatchOneEvent ()
from /opt/andrea/root/lib/libCore.so #26 0x0026acb0 in TSystem::InnerLoop () from /opt/andrea/root/lib/libCore.so #27 0x0026aa76 in TSystem::Run () from /opt/andrea/root/lib/libCore.so #28 0x00215c46 in TApplication::Run () from /opt/andrea/root/lib/libCore.so #29 0x00755f9e in TRint::Run () from /opt/andrea/root/lib/libRint.so #30 0x08048d36 in main ()
Root >
*** glibc detected *** corrupted double-linked list: 0x00e6b878 ***
[trackerpro@vmepcS2B18-37 dcureadings]$
No problem, instead, if I book, fill and draw the histogram without loading my libraries.
Has anyone an idea if the problem is in the root installation or in my classes? What is the meaning of that warning message?
thanks for your offer to help me.
I have copied my source files in ~venturia/public/mylib
You should start root in a directory which contain those files (and a directory named 51800). Then you execute
.x CompileAll.C
After that everytime you start root you should execute
.x LoadAll.C
as I told you with lxplus everything is fine while on the other machine I got plenty of those warning, then other warning when I draw a simple histogram as in the previous example (which as nothing to do with my libraries) and finally the crash I have shown to you when I quit root.
[quote]as I told you with lxplus everything is fine while on the other machine I got plenty of those warning[/quote]Just checking , did you regenerate the macro shared library on the other machines?
Are you in a position to give me access to your node so that I can really reproduce this problem? [I.e. I can’t see anything wrong from the output and I can not reproduce this problem, and I can not run your example (see message above)]
You have this situation because you have use the --prefix configuration option, and did run the gmake install but you are still pointing to the source directory.
To fix the problem you can use
export LD_LIBRARY_PATH=/opt/andrea/lib/root
instead of export LD_LIBRARY_PATH=${ROOTSYS}/lib. (See the file prepare_root_better in the same directory as prepare_root)
OR you can recompile ROOT without the --prefix option.
Cheers,
Philippe.
PS. You may also want to change the PATH from $ROOTSYS/bin to /opt/andrea/bin/root
We are having this same problem of TClassTable warnings followed by a crash upon exit with our ROOT 5 (5.34/30) while trying to get AMORE working. Unfortunately, the apparent answer to this problem is not rendering on the webpage (nor is it hidden away in the site’s HTML). The requested output of ldd root and the ROOT commands is included below. Although this is an old issue, any assistance will be greatly appreciated.
BTW. When you post “source code” or “output” here, do remember to enclose them into two lines which contain just three characters ``` (see how your post has been edited above).