TFile-s merged with v6.20.08 cannot be read by v6.18.04

TFile-s that I create (using an hadd-like script that uses TTree::MergeTrees for one of the input trees) using v6.20.08 cannot be read by v6.18.04. When opening the file I get:

Error R__unzip_header: error in header.  Values: 5a53
Info in <TFile::GetStreamerInfoList>: cannot find the StreamerInfo record in file inputs/

Is this a known / expected limitation of backward compatibility?

Is there any reasonable workaround that does not force me to upgrade ROOT in sync on all relevant computers?

Platform: Ubuntu 18.04LTS
Compiler: gcc 7.5.0

many thanks,

Maybe @pcanal has an idea of what could be the issue

What compression setting did you select when writing the files?

My program does not explicitly select a compression setting when writing a file.
Looking at the resulting files, their compression setting is 505.

505 is ZSTD (level 5) which is not supported by v6_18, however it is not the default.

So we need to track down how the files ended up using ZSTD (hadd might just be re-using the compression level in the original file ; hadd can also be used to switch the compression setting).

Thanks for the explanation!

  • I now open the output file with the same compression settings as used by the inputs, so my problem is solved.
  • to answer your question: previously I (semi-accidently) was creating the output file with the setting CompressionSetting.EDefaults.kUseGeneralPurpose

thanks again,

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