Mitigation for DTR sizes in accounting print-outs (BUGZ-3968)
Short summary of the bugged behavior
For one of the files in question:
- Real size (from Panda): 3836.19 MB
- Size as shown by arcctl: 259.8M
- Raw size in accounting database: -272433175
Cause
SQLite stores only signed integers, in the A-REX C++ code values are unsigned integers. C++ accounting code just stores them in SQLite.
Mitigation
As we are already storing like this and luckily it is not a part of the publishing, on the python side:
-272433175+2^32 = 3836.1874 MB
Proper fix
Maybe some proper type conversion in C++ before storing values? But I am not feeling experienced enough for properly fixing this.