Re: [ROOT] trouble reading a large root file

From: Rene Brun (Rene.Brun@cern.ch)
Date: Wed Nov 13 2002 - 18:59:03 MET


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:17 MET