Skip to content

Support serialization and deserialization of ints of arbitrary length

msgpack only has built-in support for ints that fit in 64 bits. However, we happen to be storing arbitrary json in the archive, which itself has support for integers of arbitrary length, which themselves are mapped to "long" integers in Python, which make the msgpack encoder blow up.

Fortunately, overflowing integers are passed to the default object hook. We generate a msgpack "extended type" with code 1 for arbitrary integers.

Test Plan

extended the msgpack roundtrip test with the culprit integer noticed in the archive.


Migrated from D3026 (view on Phabricator)

Merge request reports