Dear Rooters,
We are running a DAQ program which writes root files typically
of size 300 Mb. The file has 5 trees, one of them (“readout0”)
containing most of the data. SetAutoSave(10000000) (10 Mbyte) was
called for all of the trees.
Unfortunately the DAQ crashed due to hardware problems in VME for
a few runs leaving files with sizes upto 103 Mbyte.
Despite of the above SetAutoSave no keys could be recovered.
In the attachment (see below) I add diagnostic output from tree->Dump() for
a good run (241raw.root) which indicates that fAutoSave = 9976250
was really set to the required value. Still the complete tree
is contained in one key as f.ls() indicates. I expected O(30)
and fSavedBytes = 0
In addition I add diagnostic output for a bad file(231raw.root).
Not much to see of course apart from sizes and program version (5.34.05)
I looked at similiar data from 2009 (Root V 5.23.02), written with
essentially the same program. There I see as expected:
fTotBytes 1498708707 Total number … before compression
fZipBytes 113642006 Total number … after compression
fSavedBytes 1496267805 Number of autosaved bytes
…
fAutoSave 10000000 Autosave tree when fAutoSave bytes produced
We are concerned about 2 things:
-
How can we make the AutoSave mechanism work in future.
-
Is there any chance to recover some of the bad data.
In the past Rene indicated something in this direction:
How to read a Zombie file?
“This will require some work (not possible in the coming days), but
it is doable.”
Cheers
Otto
I am unable to add an attachment (any “extension not allowed”)
therefore I include it here:
TFile f(“241raw.root”); // file size 317Mbyte
root [1] f.ls()
TFile** 241raw.root Sidet_Mon-ERD-Configuration
TFile* 241raw.root Sidet_Mon-ERD-Configuration
KEY: TTree Start;1 Start Acquisition
KEY: TTree xstop;1 stop acquisition, trigger 15, user-defined
KEY: TTree DeadTime;1 Dead Time
KEY: TTree readout0;1 readout of branch0 mon
KEY: TTree readout1;1 readout of branch1 sidet
KEY: TTree readout2;1 readout of branch0 current
readout0->Dump()
fEntries 935441 Number of entries
fTotBytes 5123607640 Total number … before compression
fZipBytes 325049919 Total number … after compression
fSavedBytes 0 Number of autosaved bytes
fFlushedBytes 305210266 Number of autoflushed bytes
…
fAutoSave 9976250 Autosave tree when fAutoSave bytes produced
fAutoFlush 79810 Autoflush tree when fAutoFlush entries written
…
TFile f(“231raw.root”); // file size 103Mbyte
Warning in TFile::Init: file 231raw.root probably not closed, trying to recover
Warning in TFile::Init: no keys recovered, file has been made a Zombie
f.ls()
TFile** 231raw.root Sidet_Mon-ERD-Configuration
TFile* 231raw.root Sidet_Mon-ERD-Configuration
root [2] f.Dump()
==> Dumping object at: 0x00000000010d8570, name=231raw.root, class=TFile
…
fBytesRead 15334700 Number of bytes read from this file
…
fBEGIN 100 First used byte in file
fEND 107498518 Last used byte in file
…
fVersion 53405 File format version
…
fRealName 231raw.root Effective real file name (not original url)