box: reset system space formats for bootstrap
We disable system space triggers to generate a bootstrap snapshot, but this doesn't turn off space format checks. As a result, if a space format is updated during the upgrade sequence, it may turn out that data inserted earlier doesn't match the new format. We encountered this issue only once, when we added new fields to the _func system space, see commit 200a492a ("box: introduce Lua persistent functions"). Back then, we simply added the new fields to the earlier update function. However, modifying the update history looks ugly. We're planning to add new fields to the _user system space so we should find a way to avoid that. The fix is simple: we clear all system space formats before disabling system space triggers and reset them back after the bootstrap is done. To achieve that, we have to eliminate usage of any functions that access tuple fields by name. Needed for https://github.com/tarantool/tarantool-ee/issues/298 Needed for https://github.com/tarantool/tarantool-ee/issues/299 NO_DOC=refactoring NO_TEST=refactoring NO_CHANGELOG=refactoring
Please register or sign in to comment