Production Engineer | Facebook (Dublin, Ireland)
Production Engineer at Facebook Dublin, working on Infrastructure / Data Centers.
Migrating an older code base to Python 3: the expected - and the unexpected
Python 3 is used extensively inside Facebook, but this was not always the case:
there are some large services written years ago that sometimes need to be brought into the new world as new features need to be added, features available in Python 3 libraries only.
While there are semi-automated tools that can help with such migrations and also some very well known "gotchas" - e.g. print function syntax or differences when rounding floating point numbers, sometimes things do not go as planned.
One such service, when migrated to Python 3, has started to exhibit a memory leak that was not present before, keeping us puzzled for days. This talk will tell the story on how we got to solve a problem that, at some point, seemed to have no acceptable solution.