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

Compatibility fixes needed for tarantool/tarantool#8147 #440

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

CuriousGeorgiy
Copy link
Member

@CuriousGeorgiy CuriousGeorgiy commented Oct 26, 2023

This patchset brings comptability fixes needed for tarantool/tarantool#8147.

Needed for tarantool/tarantool#8147

@CuriousGeorgiy CuriousGeorgiy force-pushed the iproto-tuple-formats-fixes branch 4 times, most recently from 2c1e317 to fa589ad Compare October 27, 2023 06:34
@CuriousGeorgiy CuriousGeorgiy added the do not merge Not ready to be merged label Oct 27, 2023
@CuriousGeorgiy CuriousGeorgiy marked this pull request as ready for review October 27, 2023 13:32
In scope of tarantool/tarantool#8147, box tuples returned from remote
procedure calls our now encoded as a new extension, `MP_TUPLE`, and,
consequently, the results of such calls are now decoded as box tuples. For
compatibility with this feature, we need to add this case to shard key
hashing. Since box tuples are semantically equivalent to Lua tables, we can
process them the same way.

Needed for tarantool/tarantool#8147

NO_DOC=<refactoring>
NO_TEST=<refactoring>
@CuriousGeorgiy
Copy link
Member Author

CuriousGeorgiy commented Oct 27, 2023

@Gerold103 I was trying to verify that the set of compatibility fixes for tarantool/tarantool#8147 is sufficient by testing against tarantool/tarantool#8630, but I see three tests fail on CI:

  1. I don't understand why the misc tests fail:
misc/check_uuid_on_connect.test.lua                             

[Instance "bad_uuid_1_b" returns with non-zero exit code: 1]

Last 15 lines of Tarantool Log file [Instance "bad_uuid_1_b"][/home/runner/work/vshard/vshard/test/var/001_misc/bad_uuid_1_b.log]:
Starting instance bad_uuid_1_b...
Start failed: builtin/box/console.lua:1014: failed to create server localhost:[47](https://github.com/tarantool/vshard/actions/runs/6663765568/job/18110171333?pr=440#step:12:48)458: Address already in use
[ fail ]

Locally, all the misc tests succeed.
2. I don't understand why the upgrade/upgrade test fails:

upgrade/upgrade.test.lua                                        [ fail ]

Test failed! Result content mismatch:
--- upgrade/upgrade.result	Fri Oct 27 06:42:28 2023
+++ /home/runner/work/vshard/vshard/test/var/rejects/upgrade/upgrade.reject	Fri Oct 27 06:51:52 2023
@@ -229,6 +229,9 @@
     vshard.storage.cfg(cfg, util.name_to_uuid[NAME])                            \
 ]])
  | ---
+ | - error: '...rd/test/var/vshard_git_tree_copy/vshard/storage/init.lua:2152: Replicaset
+ |     UUID mismatch: already set "nil" but "ac522f65-aa94-4134-9f64-51ee384f1a54" in
+ |     vshard config'
  | ...

Seems like a transient failure from the misc test to me.

I am not able to run the upgrade/upgrade test locally, since I keep getting the following error, which doesn't seem to be related to my changes:

[001] Test failed! Result content mismatch:
[001] --- upgrade/upgrade.result	Wed Oct 18 16:57:26 2023
[001] +++ /tmp/vshard/rejects/upgrade/upgrade.reject	Fri Oct 27 10:04:32 2023
[001] @@ -31,6 +31,7 @@
[001]   | ...
[001]  vshard_copy_path = util.git_checkout('vshard_git_tree_copy', oldest_version)
[001]   | ---
[001] + | - error: '/private/tmp/vshard/001_upgrade/git_util.lua:26: Git cmd error: 256'
[001]   | ...

AFAIC, I have installed all the test dependencies, I run the test like this:

georgiy.lebedev@georgiy-lebedev test % /usr/bin/python3 ./test-run.py -j1 --builddir ~/Work/tarantool/build-debug/ --vardir /tmp/vshard/ --long --force upgrade/upgrade
Started ./test-run.py -j1 --builddir /Users/georgiy.lebedev/Work/tarantool/build-debug/ --vardir /tmp/vshard/ --long --force upgrade/upgrade
Running in parallel with 1 workers

Timeout options:
-------------------
REPLICATION_SYNC_TIMEOUT: 100
TEST_TIMEOUT:             110
NO_OUTPUT_TIMEOUT:        120

Collecting tests in 'failover'       (Found 0   tests): Failover tests.
Collecting tests in 'misc'           (Found 0   tests): Misc tests.
Collecting tests in 'multiple_routers' (Found 0   tests): Multiple routers tests.
Collecting tests in 'rebalancer'     (Found 0   tests): Rebalancer tests.
Collecting tests in 'reload_evolution' (Found 0   tests): Reload evolution tests.
Collecting tests in 'replicaset-luatest' (Found 0   tests): Replicaset tests.
Collecting tests in 'router'         (Found 0   tests): Router tests.
Collecting tests in 'router-luatest' (Found 0   tests): Router tests.
Collecting tests in 'storage'        (Found 0   tests): Storage tests.
Collecting tests in 'storage-luatest' (Found 0   tests): Storage tests.
Collecting tests in 'unit'           (Found 0   tests): Unit tests.
Collecting tests in 'unit-luatest'   (Found 0   tests): Unit tests.
Collecting tests in 'unit-tap'       (Found 0   tests): Unit tests TAP.
Collecting tests in 'upgrade'        (Found 1   tests): Upgrade tests.

Tarantool server information
 | Found executable at /Users/georgiy.lebedev/Work/tarantool/build-debug/src/tarantool
 | Found tarantoolctl at /Users/georgiy.lebedev/Work/tarantool/build-debug/extra/dist/tarantoolctl

Temporarily add tarantool/tarantool#8630 to test matrix.

NO_DOC=<temporary commit>
NO_TEST=<temporary commit>
@CuriousGeorgiy
Copy link
Member Author

CuriousGeorgiy commented Oct 27, 2023

@Gerold103 actually, seems like with this patch to Tarantool, comptability changes to vshard are not required, since the vshard integration workflow succeeds without them.

TBH, I am not sure why it helped. I guess the problem originally wasn't triggered by the hash calculation.

I am leaving the PR open for now, so you can decide whether this change could actually be beneficial, feel free to close it if not.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
do not merge Not ready to be merged
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants