Skip to content
Snippets Groups Projects
Commit 85ebbcc0 authored by Vladimir Davydov's avatar Vladimir Davydov Committed by Vladimir Davydov
Browse files

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
parent ec1af129
No related branches found
No related tags found
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment