Hello Rene, on both systems we are running with root_v3.01.06 For the system which was crushing (bad.out) the root was taken from root_v3.01.06.Linux.2.2.12-20smp.egcs.tar.gz, since it has RedHat 6.2 with Red Hat Linux release 6.2 with gcc version egcs-2.91.66 19990314/Linux(egcs-1.1.2 release). The "good" system is running root from root_v3.01.06.Linux.2.4.4-rh7.1.tar.gz, since it is has gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-81) These are the only differences between the systems. We don't use TTree::SetBranchStyle(mode); Below is the output from "bad" system. Best regards, Ruben [shahoian@lyopcs2 ~/NA60]# echo $ROOTSYS /home/na50/shahoian/root [shahoian@lyopcs2 ~/NA60]# echo $LD_LIBRARY_PATH /home/na50/shahoian/NA60/lib/tgt_Linux:/home/na50/shahoian/NA60/lib/tgt_Linux:/home/na50/shahoian/root/lib:./ [shahoian@lyopcs2 ~/NA60]# na60root ******************************************* * * * W E L C O M E to R O O T * * * * Version 3.01/06 12 July 2001 * * * * You are welcome to visit our Web site * * http://root.cern.ch * * * ******************************************* Compiled with thread support. CINT/ROOT C/C++ Interpreter version 5.15.06, June 30 2001 Type ? for help. Commands must be C++ statements. Enclose multiple statements between { }. root [0] .x NaPyTrigXXX_test.C(1,"na60pyJpsi.root") // creates the tree in the na60pyJpsi.root file root [1] fl = new TFile("na60pyJpsi.root") (class TFile*)0x9588400 root [2] .ls TFile** na60pyJpsi.root TFile* na60pyJpsi.root KEY: TTree NA60Tree;1 NA60 Run Tree root [3] tree = (TTree*) fl->Get("NA60Tree") (class TTree*)0x962bfa8 root [4] tree->Print() ****************************************************************************** *Tree :NA60Tree : NA60 Run Tree * *Entries : 1 : Total = 3877 bytes File Size = 3877 * * : : Tree compression factor = 1.00 * ****************************************************************************** *Br 0 :VXTL : * *Entries : 1 : Total Size= 0 bytes File Size = 0 * *Baskets : 0 : Basket Size= 32000 bytes Compression= 1.00 * ... deleted .. root [5] tree->GetEntry(0) Warning in <TExMap::Remove>: key 23 not found at 23 Warning in <TBuffer::CheckObject>: reference to object of unavailable class TObject, pointer will be 0 Error in <TBuffer::CheckByteCount>: object of class TCollection read too many bytes Warning in <TBuffer::CheckByteCount>: TCollection::Streamer() not in sync with data on file, fix Streamer() *** Break *** segmentation violation Root > On Fri, 8 Mar 2002, Rene Brun wrote: > Ruben, > > I do not understand with which version you produced bad.out and good.out. > I see that the main difference is that: > -good.out has a TBranchObject (old branch style) > -bad.out has a TBranchElement (new branch style) > > If you are running on both systems with exactly the same version, this should > not happen. It looks like you have a mismatch with your LD_LIBRARY_PATH. > Are you calling somewhere > TTree::SetBranchStyle(mode); with mode = 0 or 1 ? > > The default branch style was changed from 0 (old TBranchObject) to 1(new) > between 3.01/06 and 3.02 > > Rene Brun > > > Ruben Shahoian wrote: > > > > Hello, > > We are running the same program on the same root version (3.01.06) > > but on different machines, and on one of them > > (gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-81)) everything works > > fine while on the other (Red Hat Linux release 6.2 (Zoot), > > gcc version egcs-2.91.66 19990314/Linux(egcs-1.1.2 release)) > > we get a segmentation violation when trying to read the branch of the > > tree from the file (created by the same program on the same machine). > > The crush is preceded by the error message during reading of previous > > branch (each branch is a TObjArray of TClonesArray's, written in > > non-splitted mode). > > > > The error is : > > > > branch1->GetEntry(0); //Read Branch for one detector > > Warning in <TExMap::Remove>: key 23 not found at 23 > > Warning in <TBuffer::CheckObject>: reference to object of unavailable > > class TObject, pointer will be 0 > > Error in <TBuffer::CheckByteCount>: object of class TCollection read too > > many bytes > > Warning in <TBuffer::CheckByteCount>: TCollection::Streamer() not in sync > > with data on file, fix Streamer() > > > > branch2->GetEntry(0); //Read Branch for other detector > > > > *** Break *** segmentation violation > > > > The problem is created at tree writing stage, since although the data in > > the trees are the same in both cases, the trees are different: > > when I do TFile::ShowStreamerInfo() for the files containing the trees, > > the 'bad' file shows all StreamerInfo's present in the 'good' file PLUS > > StreamerInfo's for TBranchElement and TLeafElement (absent in the > > "good" file's ShowStreamerInfo output. I don't use TTree::Bronch method) > > > > Does anybody know what can be the reason. > > I attach the outputs of ShowStreamerInfo() for both files. > > > > Regards, > > Ruben Shahoian > > > > PS On both machines the program runs fine with root_3.02.07, but for > > different reasons we would like to have backward compatibility at least > > with 3.01.06 > > > > > > > > -------------------------------------------------------------------------------- > > > > Name: StreamerInfo.tar.gz > > StreamerInfo.tar.gz Type: Unix Tape Archive (application/x-tar) > > Encoding: BASE64 >
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:50:45 MET