Snapshot crashing in update mode and multithreading enabled on LXPLUS


Please read tips for efficient and successful posting and posting code

ROOT Version:
LXPLUS: 6.20/02 CRASH
6.22/00 OK
MacOs: 6.20/00 OK
Platform: Not Provided
Compiler: Not Provided


Hi ROOT and RDataFrame developers,

I have written an analysis code based on RDataFrame exploiting its implicit multithreading capabilities.
At the end of it, I do a Snapshot to an already-existing TFile to save my RDF.

            ROOT::EnableImplicitMT();
            /* ... do things ... */
            ROOT::RDF::RSnapshotOptions opts;
            opts.fMode = "UPDATE";
            d.Snapshot(treeName, fileName, columnNames, opts);

On my MacOs laptop (ROOT 6.20/00) everything works smoothly. However, on LXPLUS and linux based machines, with ROOT 6.20/02 a crash occurs:

terminate called after throwing an instance of 'std::invalid_argument'
what():  Snapshot: fMode == "update" not supported when implicit MT is enabled

whereas using ROOT 6.22/00 everything works fine.

Is this a known issue, solved in ROOT 6.22?

Cheers,
Loris

Hi Loris,

Yes, sorry for the trouble, Snapshot+UPDATE+IMT had some issues in 6.20, that have been fixed in v6.22.
In v6.20/00 there was a nasty bug in the MT case that spurred us to just veto that case in v6.20/02 – and get it properly fixed for 6.22.

Cheers,
Enrico

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.