Hi Ed, ROOT and all its DLL's are multithread binaries. You have to compile your portion against of the same share C++ run-time library also. This means you have to apply "multithread" option even there is no thread in your piece of the software. I am not sure whether this would cure the problem but definitely it helps to detect the real one if any. Can you try that? Best regards, Valeri > -----Original Message----- > From: owner-roottalk@pcroot.cern.ch [mailto:owner-roottalk@pcroot.cern.ch] > On Behalf Of Ed Oltman > Sent: Friday, November 15, 2002 11:03 AM > To: Rene Brun > Cc: Roottalk@Pcroot. Cern. Ch > Subject: RE: [ROOT] trouble reading a large root file > > Rene, > I'm wondering of the problem I've observed is a > threading problem: The difference between the mfc > and console applications is that in mfc, I use > multi-threaded dll runtime library and with the > console app, I use the single threaded non-dll > runtime library. I have included a file which > includes my root wrapper class: > > main.cpp - console program, that works just fine > rawdata.h - definitition of raw data file > wrapper.h - definition of root wrapper class > wrapper.cpp - root wrapper class > > Thanks, > Ed > > > > -----Original Message----- > > From: Ed Oltman > > Sent: Wednesday, November 13, 2002 5:26 PM > > To: Rene Brun > > Cc: Roottalk@Pcroot. Cern. Ch > > Subject: RE: [ROOT] trouble reading a large root file > > > > > > Hello Rene, > > The application that generates the root file is an MFC application - I > > could not call m_Ntuple->Print(). So, I built a console application and > > ran that. Strangly enough, the root code performed as it was expected > - > > I was able to add a m_Ntuple->Print() and got the following. When I > went > > to read the ntuple in to root, everything worked fine. > > > > Very puzzling.. > > > > Ed > > > > > > the current keyboard layout is 437 > > ****************************************************************** > > ************ > > *Tree :nt : Raw > > * > > *Entries : 55798842 : Total = 2013592842 bytes File Size = > > 697021417 * > > * : : Tree compression factor = 2.89 > > * > > ****************************************************************** > > ************ > > *Br 0 :x : > > * > > *Entries : 55798842 : Total Size= 223720044 bytes File Size = > > 119308739 * > > *Baskets : 6987 : Basket Size= 32000 bytes Compression= > > 1.87 * > > *................................................................. > > ...........* > > *Br 1 :y : > > * > > *Entries : 55798842 : Total Size= 223720044 bytes File Size = > > 120235511 * > > *Baskets : 6987 : Basket Size= 32000 bytes Compression= > > 1.86 * > > *................................................................. > > ...........* > > *Br 2 :tof : > > * > > *Entries : 55798842 : Total Size= 223734094 bytes File Size = > > 144517194 * > > *Baskets : 6988 : Basket Size= 32000 bytes Compression= > > 1.55 * > > *................................................................. > > ...........* > > *Br 3 :z : > > * > > *Entries : 55798842 : Total Size= 223720044 bytes File Size = > > 22759189 * > > *Baskets : 6987 : Basket Size= 32000 bytes Compression= > > 9.82 * > > *................................................................. > > ...........* > > *Br 4 :v : > > * > > *Entries : 55798842 : Total Size= 223720044 bytes File Size = > > 11260843 * > > *Baskets : 6987 : Basket Size= 32000 bytes Compression= > > 19.85 * > > *................................................................. > > ...........* > > *Br 5 :delta : > > * > > *Entries : 55798842 : Total Size= 223748082 bytes File Size = > > 57303282 * > > *Baskets : 6988 : Basket Size= 32000 bytes Compression= > > 3.90 * > > *................................................................. > > ...........* > > *Br 6 :pulse : > > * > > *Entries : 55798842 : Total Size= 223748082 bytes File Size = > > 33798419 * > > *Baskets : 6988 : Basket Size= 32000 bytes Compression= > > 6.62 * > > *................................................................. > > ...........* > > *Br 7 :vap : > > * > > *Entries : 55798842 : Total Size= 223734094 bytes File Size = > > 849142 * > > *Baskets : 6988 : Basket Size= 32000 bytes Compression= > > 263.31 * > > *................................................................. > > ...........* > > *Br 8 :erate : > > * > > *Entries : 55798842 : Total Size= 223748082 bytes File Size = > > 186360721 * > > *Baskets : 6988 : Basket Size= 32000 bytes Compression= > > 1.20 * > > *................................................................. > > ...........* > > Press any key to continue > > > > > -----Original Message----- > > > From: Rene Brun [mailto:brun@pcbrun.cern.ch] > > > Sent: Wednesday, November 13, 2002 11:59 AM > > > To: Ed Oltman > > > Cc: Roottalk@Pcroot. Cern. Ch > > > Subject: Re: [ROOT] trouble reading a large root file > > > > > > > > > Hi Ed, > > > > > > It looks like this file has been overwritten at some point. > > > To help understanding this problem, could you > > > -add the statement m_Ntuple->Print() at the end of the job > > > producing the ntuple, just before closing the file. > > > and send me the output. > > > > > > If this does not crash, add the following statement between > > > m_Ntuple->Print() and closing the file: > > > m_Ntuple_Draw("pulse"); > > > > > > Is it possible to have access to your input file (gzipped) > > > and your small program reading it and converting it to Root? > > > > > > Rene Brun > > > > > > On Wed, 13 Nov 2002, Ed Oltman wrote: > > > > > > > Hello, > > > > I am having trouble reading a "large" root file I generated > > > > with a stand-alone application (reads non-root data, produces > > > > a root file that consists of a couple of small histos and > > > > a TNtuple) I've used this stand-alone program thousands of > > > > times over the past year with no problem. > > > > > > > > This time, the data is much larger there are approximately > > > > 56 million entries in the TNtuple, each with 9 variables. > > > > I created the TFile with > > > > > > > > m_hFile = new TFile(pname,"RECREATE","ap data"); > > > > > > > > I created the TNtuple with > > > > > > > > m_Ntuple = new > > > TNtuple("nt","Raw","x:y:tof:z:v:delta:pulse:vap:erate"); > > > > > > > > The program that generates the ntuple terminates normally.. > > The output > > > > file is 696,229,888 Bytes - smaller than the 1900 MByte limit > > > of a TTree. > > > > > > > > When I open with root, I get the errors shown below. Any ideas what > I > > > > need to do to fix or diagnose the problem? Thanks > > > > > > > > I use root v3.03/9a on win2k. > > > > > > > > > > > > Ed Oltman > > > > > > > > > > > > C:\root>root > > > > the current keyboard layout is 437 > > > > ******************************************* > > > > * * > > > > * W E L C O M E to R O O T * > > > > * * > > > > * Version 3.03/09 29 October 2002 * > > > > * * > > > > * You are welcome to visit our Web site * > > > > * http://root.cern.ch * > > > > * * > > > > ******************************************* > > > > > > > > Compiled for win32. > > > > > > > > CINT/ROOT C/C++ Interpreter version 5.15.61, Oct 6 2002 > > > > Type ? for help. Commands must be C++ statements. > > > > Enclose multiple statements between { }. > > > > root [0] TFile *f = new TFile("ap.root") > > > > Error in <TObjArray::At>: index 64 out of bounds (size: 13, this: > > > > 0x016aeb90) > > > > Warning in <TExMap::Remove>: key 131136 not found at 356 > > > > Warning in <TBuffer::CheckObject>: reference to object of > > > unavailable class > > > > TObject, pointer will be > > > > 0 > > > > Error in <TBuffer::CheckByteCount>: object of class > > > TStreamerInfo read too > > > > many bytes: 34 instead of > > > > 2 > > > > Warning in <TBuffer::CheckByteCount>: TStreamerInfo::Streamer() > > > not in sync > > > > with data on file, fix S > > > > treamer() > > > > Warning in <TExMap::Remove>: key 131072 not found at 292 > > > > Warning in <TBuffer::CheckObject>: reference to object of > > > unavailable class > > > > TObject, pointer will be > > > > 0 > > > > Error in <TBuffer::CheckByteCount>: object of class > > > TStreamerInfo read too > > > > many bytes: 34 instead of > > > > 2 > > > > Warning in <TBuffer::CheckByteCount>: TStreamerInfo::Streamer() > > > not in sync > > > > with data on file, fix S > > > > treamer() > > > > Error in <TBuffer::CheckByteCount>: object of class > > > TStreamerInfo read too > > > > many bytes: 30 instead of > > > > 2 > > > > Warning in <TBuffer::CheckByteCount>: TStreamerInfo::Streamer() > > > not in sync > > > > with data on file, fix S > > > > treamer() > > > > Warning in <TExMap::Remove>: key 50399232 not found at 141 > > > > Warning in <TBuffer::CheckObject>: reference to object of > > > unavailable class > > > > TObject, pointer will be > > > > 0 > > > > Error in <TBuffer::CheckByteCount>: object of class > > > TStreamerInfo read too > > > > many bytes: 28 instead of > > > > 2 > > > > Warning in <TBuffer::CheckByteCount>: TStreamerInfo::Streamer() > > > not in sync > > > > with data on file, fix S > > > > treamer() > > > > ERROR reading TStreamerInfo: fClassVersion=-2147483557 > > > > ERROR reading TStreamerInfo: fClassVersion=-2147483557 > > > > ERROR reading TStreamerInfo: fClassVersion=385881856 > > > > root [1]ERROR reading TStreamerInfo: fClassVersion=385881856 > > > > > > > > > > > > I tried > > > > > > > > f->Recover() and got the following: > > > > root [5] f->Recover() > > > > Info in <TFile::Recover>: recovered key TH1C:pHeader at address 192 > > > > Info in <TFile::Recover>: recovered key TList:StreamerInfo at > address > > > > 39341120 > > > > Info in <TFile::Recover>: recovered key TNtuple:nt at address > 77927255 > > > > Info in <TFile::Recover>: recovered key TNtuple:nt at address > > 116052219 > > > > Info in <TFile::Recover>: recovered key TH1F:pHits at address > > 696225755 > > > > Info in <TFile::Recover>: recovered key TH1F:pDoubles at > > > address 696225803 > > > > Info in <TFile::Recover>: recovered key TH1F:pFlag at address > > 696225861 > > > > Info in <TFile::Recover>: recovered key TFile:C:\root\ap.root > > at address > > > > 696225909 > > > > Info in <TFile::Recover>: recovered key TFile:C:\root\ap.root > > at address > > > > 696226249 > > > > (Int_t)9 > > > > > > > > but was still unable to do anything with the file.. > > > > > > > > I tried f->Dump(): > > > > > > > > root [11] f->Dump() > > > > ==>Dumping object at:989530, name=ap.root, class=TFile > > > > > > > > fSumBuffer 0 Sum of buffer sizes > > of objects > > > > written so far > > > > fSum2Buffer 0 Sum of squares of > > > buffer sizes of > > > > objects written so far > > > > fBytesWrite 0 Number of bytes > > > written to this > > > > file > > > > fBytesRead 6.4407e+007 Number of bytes > > read from this > > > > file > > > > fBEGIN 64 First used byte in file > > > > fEND 696226329 Last used byte in file > > > > fSeekFree 696226249 Location on disk of > > > free segments > > > > structure > > > > fSeekInfo 39341120 Location on disk of > > > StreamerInfo > > > > record > > > > fD 7 File descriptor > > > > fVersion 30309 File format version > > > > fCompress 1 Compression level from > 0(not > > > > compressed) to 9 (max compres > > > > sion) > > > > fNbytesFree 76 Number of bytes for > > > free segments > > > > structure > > > > fNbytesInfo 159 Number of bytes for > > > StreamerInfo > > > > record > > > > fWritten 0 Number of objects > > > written so far > > > > fNProcessIDs 0 Number of TProcessID > > > written to > > > > this file > > > > fOption ->9895ec File options > > > > fOption.*fData READ > > > > fUnits 4 Number of bytes for > > > file pointers > > > > *fFree ->0 Free segments linked > > > list table > > > > *fClassIndex ->169ee68 !Index of > > > TStreamerInfo classes > > > > written to this file > > > > *fCache ->0 !Page cache used to > > > reduce number > > > > of small I/O's > > > > *fProcessIDs ->16adb20 !Array of pointers to > > > TProcessIDs > > > > fModified 1 true if directory has been > > > > modified > > > > fWritable 0 true if directory > > is writable > > > > fDatimeC ->989550 Date and time when > > > directory is > > > > created > > > > fDatimeC.fDatime 20021113/105303 > > > > fDatimeM ->989558 Date and time of last > > > modification > > > > fDatimeM.fDatime 20021113/111332 > > > > fNbytesKeys 340 Number of bytes for the > keys > > > > fNbytesName 80 Number of bytes in TNamed > at > > > > creation time > > > > fSeekDir 64 Location of > > directory on file > > > > fSeekParent 0 Location of parent > > > directory on > > > > file > > > > fSeekKeys 696225909 Location of Keys > > > record on file > > > > *fFile ->989530 pointer to current > > > file in memory > > > > *fMother ->0 pointer to mother of > > > the directory > > > > *fList ->167cab8 Pointer to objects > > > list in memory > > > > *fKeys ->167cb28 Pointer to keys > > list in memory > > > > fUUID ->989584 Unique identifier > > > > fUUID.fUUIDIndex 0 !index in the list > > of UUIDs in > > > > TProcessUUID > > > > fUUID.fTimeLow 1607350938 60 bit time, lower 32 bits > > > > fUUID.fTimeMid 63272 middle 16 time bits > > > > fUUID.fTimeHiAndVersion 4566 high 12 time bits + 4 > > > UUID version > > > > bits > > > > fUUID.fClockSeqHiAndReserved 171 high 6 clock bits + 2 bits > > > > reserved > > > > fUUID.fClockSeqLow 70 low 8 clock bits > > > > fUUID.fNode[6] 95 6 node id bytes > > > > fName ->98953c object identifier > > > > fName.*fData ap.root > > > > fTitle ->989544 object title > > > > fTitle.*fData ap data > > > > fUniqueID 0 object unique identifier > > > > fBits 50332705 bit field status word > > > > > > > > > > > > > > > > > > > >
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:18 MET