Open olegrok opened 1 year ago
Are you doing the upgrade during the rebalancing? There is no way to update bucket_recv
function on all storages at once. You have to upgrade all the nodes without rebalancing, and then enable it again.
I expected that after instance restart/reload function definition is updated.
I had only question from customers: "we created varbinary field and now we have an error". They used Tarantool 2.11 and vshard 0.1.23.
I suggested them to run upgrade script manually and it seems to help. But I don't understand why it didn't happen automatically...
According to the code, it's not updated on hot-reload. Only the first cfg of vshard applies these changes, which is justified by the fact, that new features can occur only after updating tarantool executable.
Maybe we shoud not check, if this is the first cfg or not, just try to update it anyway. Doesn't seem to be very expensive. They probably somehow managed to update tarantool on the fly.
According to the code, it's not updated on hot-reload
I'm not sure that that project uses hot-reload. I expect that after restart changes will be applied automatically. Or... we need log message ("You need to upgrade your instance with..." or something similar) and a way how to apply it (similar to box.schema.upgrade())
This was supposed to be updated automatically on restart. Otherwise it makes sense to check if the script depends on box.schema.upgrade()
anyhow.
Initially issue with varbinary was fixed here https://github.com/tarantool/vshard/commit/dc10edf06eda7ae4cd17547f298855c3fcf3e4ff#diff-4e141700ad3735ecbe66de5316a0f222647ac7813857dc919bb49f56ec15407dR586
But our customers faced with issue when
require('vshard.util').feature.msgpack_object
is true buttakes_raw_args: false
.Manually copy-pasted migration code was fixed an issue but that should be done automatically. Please revise migration part once again.