You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
root [0] auto f = new TFile("broken-version-number.root");
root [1] f->GetVersion()
(int) -937600
This is supposed to be a number like 62400 (for 6.24/00).
This bug will likely affect files larger that 4 GB in Uproot and ROOT, and it has some other subtle effects in ROOT. ROOT checks the file version number for old files that might have old features, and a negative number is below those thresholds. (PR #1212 goes into depth about one such bug.)
Updating to Uproot 5.3.7 will prevent new files from getting a corrupted TFile::fVersion, but not files that were made before the patch. It is possible to cure old files with code like
But be careful when you apply this fix, making backup copies of valuable files before you do so.
If you have an original, broken file named original-broken.root and a copy of it that has been fixed named now-fixed.root, here's how to see that you've only updated the version number and nothing else:
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
-
Uproot 5.3.7 adds only PR #1212, which fixes a bug in uproot.update that corrupted the
fVersion
property of theTFile
.You can check for affected files with
or
This is supposed to be a number like 62400 (for 6.24/00).
This bug will likely affect files larger that 4 GB in Uproot and ROOT, and it has some other subtle effects in ROOT. ROOT checks the file version number for old files that might have old features, and a negative number is below those thresholds. (PR #1212 goes into depth about one such bug.)
Updating to Uproot 5.3.7 will prevent new files from getting a corrupted
TFile::fVersion
, but not files that were made before the patch. It is possible to cure old files with code likeBut be careful when you apply this fix, making backup copies of valuable files before you do so.
If you have an original, broken file named
original-broken.root
and a copy of it that has been fixed namednow-fixed.root
, here's how to see that you've only updated the version number and nothing else:Only the 4th through 8th bytes should change.
ff f1 b1 80
is-937600
and00 00 f3 c0
is62400
:Beta Was this translation helpful? Give feedback.
All reactions