a problem with TTreeCache

From: Szymon Gadomski <szymon.gadomski_at_cern.ch>
Date: Wed, 18 Jan 2012 17:58:48 +0100


Dear ROOT Developers,
While reading data from our DPM Storage Element, using the rfio protocol, we have seen errors that seem to come from TTreeCache. Here is a report.

The error message is:

Error in <TRFIOFile::TRFIOFile>: error doing rfio_read Error in <TBranch::GetBasket>: File:
rfio:///dpm/unige.ch/home/atlas/atlaslocalgroupdisk/user/wbell/data11_7TeV/user.wbell.data11_7TeV.00191239.physics_Muons.merge.NTUP_TOPMU.f413_m1019_p694_p722_thin0001_0001.111112032448/user.wbell.005705._00037.output.root at byte:536958, branch:EF_e45_medium1, entry:459, badread=1, nerrors=1, basketnumber=1
terminate called after throwing an instance of 'std::out_of_range'

   what(): vector::_M_range_check
/var/spool/torque/mom_priv/jobs/1418590.grid07.unige.ch.SC: line 55: 6815 Aborted

This happens when the Storage Element is busy. An 'error doing rfio_read' leads to 'std::out_of_range'. It looks like reading is not blocked when the process should be waiting for more data. Instead the process continues and crashes, printing errors due to corrupted data.

In the user code we have the lines (m_tree is a TTree*):

m_tree->SetCacheSize(104857600);
TTreeCache::SetLearnEntries(1); // Stop learning after 1 entry is read. m_tree->AddBranchToCache(branchName,true);

Removing all these lines makes the errors disappear. This is why we think there is a problem with the TTreeCache. We are using ROOT 5.30/05.

Please let us know if any more information would be useful. Best regards,
Szymon Gadomski

-- 

==================================================
Szymon GADOMSKI Université de Genève, Section de physique Département de physique nucléaire et corpusculaire 24, Quai Ernest-Ansermet, CH-1211 Genève 4 phone ++41 22 767 7935 (CERN) or ++41 22 379 6278 (DPNC)
==================================================
Received on Wed Jan 18 2012 - 17:58:54 CET

This archive was generated by hypermail 2.2.0 : Fri Feb 03 2012 - 23:50:01 CET