root icon indicating copy to clipboard operation
root copied to clipboard

RNTupleView segfaults if used after reader destruction

Open jblomer opened this issue 1 year ago • 0 comments

Check duplicate issues.

  • [ ] Checked for duplicates

Description

When accessed after the generating RNTupleReader is gone, the RNTupleView segfaults. It should fail more gracefully.

Reproducer

TEST(RNTuple, ViewPastLifetime)
{
   FileRaii fileGuard("test_ntuple_view_pastlifetime.root");

   auto model = RNTupleModel::Create();
   auto fieldPt = model->MakeField<float>("pt", 42.0);
   {
      auto writer = RNTupleWriter::Recreate(std::move(model), "ntpl", fileGuard.GetPath());
      writer->Fill();
   }

   auto reader = RNTupleReader::Open("ntpl", fileGuard.GetPath());
   EXPECT_EQ(1u, reader->GetNEntries());
   auto viewPt = reader->GetView<float>("pt");
   reader.reset();
   EXPECT_FLOAT_EQ(42.0, viewPt(0));
}

ROOT version

master

Installation method

n/a

Operating system

n/a

Additional context

No response

jblomer avatar Sep 20 '24 15:09 jblomer