Problem in opening past rootfile (TClonesArray with TH1S) with root_v6.16 and ubuntu18

Hi,
I just upgraded my desktop to ubuntu 18 and installed the ROOT_v6.16


_ROOT Version: v6.16
_Platform: ubuntu 18
_Compiler: gcc7.3


When I tried to open a old rootfile (generated by ROOT v6.06), I encountered an error.
In this rootfile, a set of TH1S histograms were stored as TClonesArray in a branch of TTree.
The error message is at the bottom of this message. I think the problem is that StreamerInfo of the TH1S class are different between the two ROOT versions. Once I opened root, I can run
“TH1S::Class()->GetStreamerInfo()->ls()”
ROOT v6_12: StreamerInfo for class: TH1S, version=2, checksum=0x82d4c80a
ROOT v6_16: StreamerInfo for class: TH1S, version=2, checksum=0x8c4d9dcb
The Streamerinfo of the TH1S class in v6_12 is consistent with what I have in the rootfile. I do not encountered a problem in opening the rootfile with this root version.

Here is the error information in opening the rootfile with ROOT v6_16
"Error in TBufferFile::CheckByteCount: object of class TClonesArray read too many bytes: 313428 instead of 207176
Warning in TBufferFile::CheckByteCount: TClonesArray::Streamer() not in sync with data on file result_5353_3_159.root, fix Streamer()
"
I am not sure what is the problem here, but it leads to a lot of troubles if I cannot use the latest root to open the old rootfiles. Please let me know what would be the solution. Thanks a lot,

Xin

Can you provide the file showing the problem? Thanks. Philippe.

Sure.
Here is the file:
https://www.phy.bnl.gov/xqian/talks/wire-cell/result_5353_3_159.root

I also attached a simple ROOT script:
https://www.phy.bnl.gov/xqian/talks/wire-cell/test_streamer.C

Thanks,

Xin

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

This problem has been resolved in the master branch and the upcoming v6.16/02 and v6.14/10.

Cheers,
Philippe.