Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Tarantool 3.0 #407

Merged
merged 3 commits into from
May 18, 2023
Merged

Support Tarantool 3.0 #407

merged 3 commits into from
May 18, 2023

Conversation

Gerold103
Copy link
Collaborator

It is not released yet and not even pushed to master branch. But vshard has to be ready in advance to make the integration tests pass. For trying 3.0 yourself use tarantool/tarantool#8289.

@Gerold103 Gerold103 force-pushed the gerold103/support-3.0 branch 3 times, most recently from 62929f0 to 0ad20af Compare March 29, 2023 22:42
@Gerold103 Gerold103 requested a review from olegrok March 30, 2023 08:22
@Gerold103 Gerold103 marked this pull request as ready for review March 30, 2023 08:22
Copy link
Contributor

@olegrok olegrok left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for your patch. LGTM with one nitpick.

return info.replicaset.uuid
end
else
replicaset_uuid= function(info)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

space before = is missed

This file will be changed in a next commit. Checkpatch is
complaining if the new lines have tabs. Need to convert the
entire file to make it consistent.

NO_DOC=refactoring
The newest Tarantool release will make several breaking changes.
The one concerning vshard - box.info.cluster changes its meaning.

This patch introduces a function for getting replicaset UUID not
depending on core Tarantool version.

Worth mentioning that Server:replicaset_uuid() workarounds this
issue on its own intentionally, without vshard.util. This is
because luatest shouldn't depend on vshard.

One test is still failing - upgrade.test.lua. It fails because
calls vshard.storage.cfg{} on 3.0 before upgrade. Non-first cfg
won't work on 3.0 because it uses box.info.cluster.uuid to check
if it matches UUID in the config. This can't be fixed as the old
code is already released years ago.

The test itself can be fixed, but it needs a commit to checkout to
upgrade from it. This commit is the first one supporting 3.0. It
means the test can only be fixed as a follow-up commit.

Another reload/upgrade test is reload_evolution/storage.test.lua.
It still works because doesn't try to call vshard.storage.cfg{}
until reload happens. Lets keep it while it is working fine.

Closes #402

NO_DOC=bugfix
The test tried to call vshard.storage.cfg{} second time on 3.0
using an old vshard version. It won't work because the old
non-first cfg tried to compare box.info.cluster.uuid with the
replicaset UUID in the config. But box.info.cluster.uuid is nil in
3.0. It was moved to box.info.replicaset.uuid.

The patch makes the upgrade test use the first commit compatible
with 3.0 as the basic version, if the Tarantool executable is 3.0.

Note that on versions < 3.0 the vshard upgrade still works fine,
hence on old executables the basic version is kept as is.

Follow up #402

NO_DOC=test
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants