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

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
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,


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

Here is the file:

I also attached a simple ROOT script:



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.