Skip to content

[DF] RDataFrame confused by array variables in 6.26/04 #10920

@vlisovsk

Description

@vlisovsk

What's wrong

When trying to Snapshot a RDataFrame that contains certain variables of the array type, segmentation violation occurs in 6.26/04. This however works in 6.24/00.

Expected behavior

No crash...

To Reproduce

A minimal reproducer can be called by running this code

#include "TROOT.h"
#include "TChain.h"
#include "ROOT/RDataFrame.hxx"
using namespace ROOT;

void preselect_test(){
  ROOT::EnableImplicitMT(3);

  TChain tree("DecayTree");
  tree.Add("testtuple.root");
  RDataFrame df1(tree);

  TCut AllCuts = "1>0";
  auto df2 = df1.Filter(AllCuts.GetTitle());
  df2.Snapshot("DecayTree", "myoutput.root");
}

where the input file testtuple.root can be found here: https://cernbox.cern.ch/index.php/s/ujgGnDwpDpQZo44
In my example, the input file contains a few branches, in particular the array-type variable Lambda_DTFL_KS_M which has a size of Lambda_DTFL_KS_nPV.

In ROOT 6.24/00 this code runs smoothly producing an output file.
In ROOT 6.26/04 the following happens:

Error in <TBranch::TBranch>: Illegal leaf: Lambda_DTFL_KS_M/Lambda_DTFL_KS_M[Lambda_DTFL_KS_nPV]/F. If this is a variable size C array it's possible that the branch holding the size is not available.

 *** Break *** segmentation violation



===========================================================
There was a crash.
This is the entire stack trace of all threads:
===========================================================
#0  0x00007f3f0f1ec60c in waitpid () from /lib64/libc.so.6
#1  0x00007f3f0f169f62 in do_system () from /lib64/libc.so.6
#2  0x00007f3f0f79f545 in TUnixSystem::StackTrace() () from /opt/miniconda/envs/root_forge/lib/libCore.so.6.26
#3  0x00007f3f0f79c8c7 in TUnixSystem::DispatchSignals(ESignals) () from /opt/miniconda/envs/root_forge/lib/libCore.so.6.26
#4  <signal handler called>
#5  0x00007f3efbe302d0 in ?? ()
#6  0x0000009900000224 in ?? ()
#7  0x0046561992848cc0 in ?? ()
#8  0x00007f3f0fa886ba in ?? () from /opt/miniconda/envs/root_forge/lib/libstdc++.so.6
#9  0x0000000000000000 in ?? ()
===========================================================


The lines below might hint at the cause of the crash.
You may get help by asking at the ROOT forum https://root.cern/forum
Only if you are really convinced it is a bug in ROOT then please submit a
report at https://root.cern/bugs Please post the ENTIRE stack trace
from above as an attachment in addition to anything else
that might help us fixing this issue.
===========================================================
#5  0x00007f3efbe302d0 in ?? ()
#6  0x0000009900000224 in ?? ()
#7  0x0046561992848cc0 in ?? ()
#8  0x00007f3f0fa886ba in ?? () from /opt/miniconda/envs/root_forge/lib/libstdc++.so.6
#9  0x0000000000000000 in ?? ()
===========================================================

Setup

  1. ROOT version: 6.26/04
  2. Operating system: centos7
  3. How you obtained ROOT: from conda

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions