RNTuple unexpected "field iteration over empty fields is unsupported"
Closed this issue · 2 comments
pcanal commented
#16768 seems to have unexpected consequence on ATLAS workflow, see #16768 (comment)
Per @amete :
This is in a mutli-chain workflow. The first step creates an RNTuple that is read by the second step. We throw on the very first event of the second step, seemingly related to reading an empty top-level field, e.g. (the messages need to be improved but that's independent):
12:37:41 ERROR (pool):
12:37:41 Unknown Source> field iteration over empty fields is unsupported: xAOD__EventInfo_v1_EventInfo
12:37:41 At:
12:37:41 ROOT::Experimental::RNTupleGlobalRange ROOT::Experimental::Internal::GetFieldRange(const ROOT::Experimental::RFieldBase&, const RPageSource&) [/build/jenkins/workspace/lcg_nightly_pipeline/build/projects/ROOT-HEAD/src/ROOT/HEAD/tree/ntuple/v7/src/RNTupleView.cxx:42]
12:37:41
12:37:41 EventData(xAOD::EventInfo_v1/EventInfo)> Cannot open ROOT container(Tree/Branch)
12:37:41 StorageSvc 0 0 ERROR Could not read object: [DB=7316ACAF-6478-5C4A-B7E8-29498AC3D2AB][CNT=EventData(xAOD::EventInfo_v1/EventInfo)][CLID=AE8BED6D-1D41-4CAF-994B-42613FC91A0A][TECH=00000205][OID=0000097700000026-0000097700000000]
12:37:41 AthenaPoolConverter 0 0 ERROR poolToObject: Could not get object for Token = [DB=7316ACAF-6478-5C4A-B7E8-29498AC3D2AB][CNT=EventData(xAOD::EventInfo_v1/EventInfo)][CLID=AE8BED6D-1D41-4CAF-994B-42613FC91A0A][TECH=00000205][OID=0000097700000026-0000097700000000]
12:37:41 Exception: POOL read failed. Token = [DB=7316ACAF-6478-5C4A-B7E8-29498AC3D2AB][CNT=EventData(xAOD::EventInfo_v1/EventInfo)][CLID=AE8BED6D-1D41-4CAF-994B-42613FC91A0A][TECH=00000205][OID=0000097700000026-0000097700000000] (no backtrace available).
12:37:41 AthenaPoolConverter 0 0 ERROR createObj - caught exception: AthenaPoolCnvSvc::::ExcCaughtException: Caught exception in StatusCode T_AthenaPoolCustomCnvWithKey<TRANS, PERS>::PoolToDataObject(DataObject*&, const Token*, const std::string&) [with TRANS = xAOD::EventInfo_v1; PERS = xAOD::EventInfo_v1; std::string = std::__cxx11::basic_string<char>] while creating transient objectxAOD::EventInfo_v1/EventInfo: std::runtime_error: POOL read failed. Token = [DB=7316ACAF-6478-5C4A-B7E8-29498AC3D2AB][CNT=EventData(xAOD::EventInfo_v1/EventInfo)][CLID=AE8BED6D-1D41-4CAF-994B-42613FC91A0A][TECH=00000205][OID=0000097700000026-0000097700000000]
12:37:41 AthenaPoolConverter 0 0 ERROR createObj failed to get DataObject, Token = [DB=7316ACAF-6478-5C4A-B7E8-29498AC3D2AB][CNT=EventData(xAOD::EventInfo_v1/EventInfo)][CLID=AE8BED6D-1D41-4CAF-994B-42613FC91A0A][TECH=00000205][OID=0000097700000026-0000097700000000]
12:37:41 DataProxy 0 0 WARNING accessData: conversion failed for data object 45903698/EventInfo
12:37:41 Returning NULL DataObject pointer
12:37:41 AthenaHiveEventLoopMgr 0 0 ERROR Unable to retrieve Event root object
12:37:41 AthenaHiveEventLoopMgr 0 0 ERROR declareEventRootAddress for context s: 0 e: 0 failed
12:37:41 AthenaHiveEventLoopMgr 0 0 ERROR Terminating event processing loop due to errors
amete commented
Thanks a lot for creating this issue @pcanal. I have an example file that reproduces the issue in the most recent dev3
LCG
nightly on LXPLUS (in a rundown way):
$ export ATLAS_LOCAL_ROOT_BASE=/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase;
$ source ${ATLAS_LOCAL_ROOT_BASE}/user/atlasLocalSetup.sh;
$ lsetup "asetup Athena,main--dev3LCG,latest";
$ root -l
root [0] auto reader = ROOT::Experimental::RNTupleReader::Open("EventData", "/afs/cern.ch/user/a/amete/public/root-16826/tmp.RDO");
Warning in <[ROOT.NTuple] Warning /build/jenkins/workspace/lcg_nightly_pipeline/build/projects/ROOT-HEAD/src/ROOT/HEAD/tree/ntuple/v7/src/RPageStorageFile.cxx:328 in ROOT::Experimental::Internal::RPageSourceFile::LoadStructureImpl()::<lambda()>>: Pre-release format version: RC 2
root [1] auto view = reader->GetView<void>("xAOD__EventInfo_v1_EventInfo", nullptr);
Error in <TRint::HandleTermInput()>: ROOT::Experimental::RException caught: field iteration over empty fields is unsupported: xAOD__EventInfo_v1_EventInfo
At:
ROOT::Experimental::RNTupleGlobalRange ROOT::Experimental::Internal::GetFieldRange(const ROOT::Experimental::RFieldBase&, const RPageSource&) [/build/jenkins/workspace/lcg_nightly_pipeline/build/projects/ROOT-HEAD/src/ROOT/HEAD/tree/ntuple/v7/src/RNTupleView.cxx:42]
github-actions commented
Hi @jblomer,
It appears this issue is closed, but wasn't yet added to a project. Please add upcoming versions that will include the fix, or 'not applicable' otherwise.
Sincerely,
🤖