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

VSCopy: Enable to copy from all shards in either a specified keyspace or all keyspaces #11909

Merged

Conversation

yoheimuta
Copy link
Contributor

@yoheimuta yoheimuta commented Dec 8, 2022

Description

This PR removes the two checks by which VTGate refuses a copy request lacking either shard or keyspace.

Let's say you have two keyspaces named ks and ks2, and each keyspace includes two shards called -80 and 80-.
Here's the table of the input and expected output:

gtid shard keyspace copy targets
empty empty /.* ks.-80, ks.80-, ks2.-80, ks2.80-
empty empty ks ks.-80, ks.80-

Related Issue(s)

Fixes #11886

Checklist

  • "Backport to:" labels have been added if this change should be back-ported
  • Tests were added or are not required
  • Documentation was added or is not required

Deployment Notes

@vitess-bot
Copy link
Contributor

vitess-bot bot commented Dec 8, 2022

Review Checklist

Hello reviewers! 👋 Please follow this checklist when reviewing this Pull Request.

General

  • Ensure that the Pull Request has a descriptive title.
  • If this is a change that users need to know about, please apply the release notes (needs details) label so that merging is blocked unless the summary release notes document is included.

If a new flag is being introduced:

  • Is it really necessary to add this flag?
  • Flag names should be clear and intuitive (as far as possible)
  • Help text should be descriptive.
  • Flag names should use dashes (-) as word separators rather than underscores (_).

If a workflow is added or modified:

  • Each item in Jobs should be named in order to mark it as required.
  • If the workflow should be required, the maintainer team should be notified.

Bug fixes

  • There should be at least one unit or end-to-end test.
  • The Pull Request description should include a link to an issue that describes the bug.

Non-trivial changes

  • There should be some code comments as to why things are implemented the way they are.

New/Existing features

  • Should be documented, either by modifying the existing documentation or creating new documentation.
  • New features should have a link to a feature request issue or an RFC that documents the use cases, corner cases and test cases.

Backward compatibility

  • Protobuf changes should be wire-compatible.
  • Changes to _vt tables and RPCs need to be backward compatible.
  • vtctl command output order should be stable and awk-able.
  • RPC changes should be compatible with vitess-operator
  • If a flag is removed, then it should also be removed from VTop, if used there.

@frouioui frouioui added Type: Feature Type: Enhancement Logical improvement (somewhere between a bug and feature) Component: Query Serving Component: VReplication labels Dec 8, 2022
if err != nil {
return err
}
schemaDir = tempSchemaDir
Copy link
Contributor Author

Choose a reason for hiding this comment

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

The main change in this file is the above lines.
The below is a trivial diff.

)

func TestRowCount(t *testing.T) {
ctx := context.Background()
conn, err := mysql.Connect(ctx, &vtParams)
require.NoError(t, err)
defer conn.Close()
utils.Exec(t, conn, "use ks")
Copy link
Contributor Author

Choose a reason for hiding this comment

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

This use statement is now necessary because the number of keyspace is multiple. 3afc402

@@ -55,6 +56,16 @@ func TestCreateAndDropDatabase(t *testing.T) {
require.NoError(t, err)
defer conn.Close()

// cleanup the keyspace from the topology.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

A leaked "testitest" keyspace makes TestVStreamCopyWithoutKeyspaceShard/copy_from_all_keyspaces fail.
Specifically, the VStreamer API itself fails with the below error.

E1207 19:46:02.204532   47701 tablet_picker.go:179] error getting shard testitest/0: node doesn't exist: keyspaces/testitest/shards/0/Shard

To fix it, 05e5ea0 adds a new cleanup function to delete the keyspace explicitly.

@mattlord
Copy link
Contributor

Hi @yoheimuta,

Thank you for another PR! I just wanted to note that before we merge this, we need to catch up on the vtgate VStream RPC docs: vitessio/website#1216

We can add info there about the new ability to copy not only individual tables, but all tables in a keyspace or all tables in all keyspaces. I'll link this PR to that docs PR for now. You should be able to push directly to that PR but if not let me know and I can get you setup with the website repo.

We're not supposed to merge PRs w/o any accompanying docs but we did, and I don't want to fall further behind on that front.

(There's another tangentially related PR here too: #11771)

Thanks!

@yoheimuta
Copy link
Contributor Author

Thank you for telling me! I'm checking out the docs PR.

@yoheimuta
Copy link
Contributor Author

You should be able to push directly to that PR but if not let me know and I can get you setup with the website repo.

@mattlord I couldn't push directly to the PR.
Can you please look into the access rights?

(base) ❯ git push --set-upstream origin vstream_docs
ERROR: Permission to vitessio/website.git denied to yoheimuta.
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

Comment on lines 182 to 186
// that has an empty keyspace.
if len(vgtid.ShardGtids) == 1 && vgtid.ShardGtids[0].Keyspace == "" {
if vgtid.ShardGtids[0].Gtid != "current" {
return nil, nil, nil, vterrors.Errorf(vtrpcpb.Code_INVALID_ARGUMENT, "for an empty keyspace, the Gtid value must be 'current': %v", vgtid)
}
keyspaces, err := vsm.toposerv.GetSrvKeyspaceNames(ctx, vsm.cell, false)
if err != nil {
return nil, nil, nil, err
Copy link
Contributor

Choose a reason for hiding this comment

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

I would prefer the request be more explicit as it will likely generate A LOT of load and could have a big impact on production. I think it would also be nice if the keyspace wildcard selection lined up with the table wildcard selection in binlogdata.Filter.Rule.Match, which is /.* as a valid regular expression is accepted if the string has a / prefix. So I think accepting valid regular expressions for the keyspace would be much nicer: /.*.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@mattlord It makes sense in terms of the difference in impact between "streaming" and "copy."
Accepting the keyspace wildcard sounds useful. With this feature, we don't have to accept the request with an empty keyspace and empty gtid.

Do you think the following specifications are still required?

  • A special request flag, for example, "EnableEmptyKeyspace" or "EnableWildcardKeyspace" in VStreamFlags.
    • I think only the keyspace wildcard like /.* is enough.
  • The valid combination of an empty keyspace and "current" gtid.
    • While the combination of an empty keyspace and the gtid other than "current" is invalid. It complicates the code, but not so much.
    • Some may think it's better to stop accepting this input for the sake of simplicity at this moment.

As such, I plan to update accepting the keyspace wildcard and preserve the previous behavior as much as possible like the below table. What do you think?

gtid keyspace valid or invalid(=noop)
"" "" invalid because of no literal match. No change.
"current" "" valid because of the compatibility. No change.
"" "/.*" valid if found because of wildcard match. New behavior.
"current" "/.*" valid if found because of wildcard match. New behavior.
"" "/ks.*/" valid if found because of wildcard match. New behavior.
"current" "/ks.*/" valid if found because of wildcard match. New behavior.

Copy link
Contributor

Choose a reason for hiding this comment

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

I think the explicit keyspace wildcard is enough and we don't need a new flag around that.

Now that I understand the usage of current better, I think we have to keep it in place for compatibility sake. What do you think @rohit-nayak-ps ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Hi @rohit-nayak-ps, I'd appreciate your feedback. Let me know if anything is missing.

Copy link
Contributor

Choose a reason for hiding this comment

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

@yoheimuta, sorry for the delay. I am fine with the approach outlined above.

We should add a (or modify the existing) e2e test to confirm that resharding will continue to work if multiple keyspaces are being streamed. We have code (see the logic around journaler in vstream_manager), which waits for participating shards to converge, before automatically continuing to stream from the new shards. I think it should be fine, when there are multiple keyspaces, but confirming with a test will be useful.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Thank you for your confirmation!
I'm looking into e2e test too.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Hi 👋

@mattlord I implemented the keyspace wildcard selection by d83daaf and c39af7c.

@rohit-nayak-ps I added the e2e test by 71e1681 and 436568d

And I think the CI failure is caused by some unreliable tests because the failing test changes every time we run it and it passes when we run it locally.

Copy link
Contributor

Choose a reason for hiding this comment

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

Thanks @yoheimuta, we will review it soon. Yes, that CI failure is also happening on other PRs and I have asked the related team to look at it.

Comment on lines +889 to +891
ShardGtids: []*binlogdatapb.ShardGtid{{
Keyspace: "TestVStream",
}},
Copy link
Contributor

Choose a reason for hiding this comment

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

These test additions are unrelated to this PR, or no? I would think we would test the new behavior, which would mean NOT specifying the shards and now not getting an error?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

@mattlord I thought they were related to this PR.
Technically, I didn't add new test cases (input & output). I changed the expected output in the following existing two cases:

  1. When the input is ShardGtids: []*binlogdatapb.ShardGtid{{}},
  2. When the input is ShardGtids: []*binlogdatapb.ShardGtid{{Keyspace: "TestVStream"}},

Copy link
Contributor

@mattlord mattlord Feb 11, 2023

Choose a reason for hiding this comment

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

Here as well I think that comments noting what we're actually testing, how, and why are helpful. The future reader won't easily see comments here on the PR. And I know that the existing code is very poorly commented, but I want to do better moving forward. 🙂

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Added by 3b41d76.

go/vt/vtgate/vstream_manager_test.go Outdated Show resolved Hide resolved
@deepthi deepthi removed their request for review January 4, 2023 20:02
@yoheimuta
Copy link
Contributor Author

@mattlord Thanks for reviewing my work!
I just finished responding to your comments, so please take a look when you have a chance.

The only thing left on my to-do list for now is addressing the comment on #11909, which I'll bring up in our chat shortly.

@yoheimuta
Copy link
Contributor Author

which I'll bring up in our chat shortly.

Instead, I first posted a question as a follow-up comment.
#11909 (comment)

@yoheimuta
Copy link
Contributor Author

Regarding commit 8970182, a simple change to a test log message and comment unexpectedly caused 17 checks to fail. I believe these failures are unrelated to the changes in the PR, as the previous commit d7169ec only failed 1 check.

@rohit-nayak-ps
Copy link
Contributor

Regarding commit 8970182, a simple change to a test log message and comment unexpectedly caused 17 checks to fail. I believe these failures are unrelated to the changes in the PR, as the previous commit d7169ec only failed 1 check.

The errors are due to a change in the signature of a test function, see: 8970182

You probably need to rebase to main if the tests are running locally for you.

@yoheimuta
Copy link
Contributor Author

@rohit-nayak-ps Thank you for your information!
I mixed up GitHub Action with CircleCI 😅.

256400f fixed the test signature.

Copy link
Contributor

@mattlord mattlord left a comment

Choose a reason for hiding this comment

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

Thank you, @yoheimuta ! ❤️ This is a nice usability improvement.

@mattlord
Copy link
Contributor

@yoheimuta if we merge in / rebase on main now, the tests should all be good.

@yoheimuta
Copy link
Contributor Author

@mattlord Thank you for your review and helpful suggestions! I really appreciate it.

@yoheimuta
Copy link
Contributor Author

Thanks for the info! I have merged the main branch.

@yoheimuta
Copy link
Contributor Author

@mattlord Is there anything missing to pass the test?
I don't think the flakiness of Cluster (onlineddl_vrepl) mysql57 and Cluster (onlineddl_vrepl) are caused by this PR, though.

@yoheimuta
Copy link
Contributor Author

And I'm thinking of preparing a PR for https://github.com/vitessio/website after it's been approved by two people.

@mattlord
Copy link
Contributor

@mattlord Is there anything missing to pass the test?

I don't think so. We just need @rohit-nayak-ps to take another look when he can (PRs need 2 approvals).

I don't think the flakiness of Cluster (onlineddl_vrepl) mysql57 and Cluster (onlineddl_vrepl) are caused by this PR, though.

Those are unrelated. It's a known issue that we're discussing the proper/best solution to.

Thanks!

Copy link
Contributor

@rohit-nayak-ps rohit-nayak-ps left a comment

Choose a reason for hiding this comment

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

lgtm. Nice work!

@rohit-nayak-ps rohit-nayak-ps merged commit 5ba5f04 into vitessio:main Mar 14, 2023
timvaillancourt pushed a commit to slackhq/vitess that referenced this pull request May 27, 2024
… or all keyspaces (vitessio#11909)

* VSCopy: Demonstrate to fail a test case on which the vstream API request doesn't include keyspace and shard

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Copy from all shards in all keyspaces by specifying only an empty gtid

Signed-off-by: yoheimuta <[email protected]>

* tests: Make TestRowCount stable regardless of the number of keyspaces

Signed-off-by: yoheimuta <[email protected]>

* tests: Cleanup TestCreateAndDropDatabase correctly to stop TestVStreamCopyWithoutKeyspaceShard from failing when running tests together

Signed-off-by: yoheimuta <[email protected]>

* tests: Tweak to fix a comment

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: fix the unit tests when the input vgtid with an empty gtid lacks either keyspace or shard

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Keyspace wildcard selection lines up with the table wildcard selection

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Tests the VCopy with multiple keyspaces and resharding

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Make TestVStreamCopyMultiKeyspaceReshard clearer to check if the streaming two keyspaces works even after reshard

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Return an invalid argument error if shards are unspecified and gtid is neither 'current' nor empty

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Add a test description about its purpose and target

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Remove duplicate literals in the test

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Retain defaultReplicas variable in the test

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Explain why we are setting Match to 'customer.*' in the test

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Remove an unused VStreamFlag for the test

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Use sentence capitalization in the test

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Verify that we didn't lose any events or get duplicates of the keyspace being reshareded in the test

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Return a value instead of a pointer because there is no need to modify the value

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Add a comment describing what TestVStreamCopyFromAllKeyspacesAndAllShards is doing and why

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Add a comment describing why we expect these specific numbers of events from VStream API

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Tweak the test case name

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Make a utility function to sort COPY_COMPLETED events in the test

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Replace the matcher with a simpler one in the test

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Move the print debug call to the FailNow section in the test

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Use require.NoError in new tests

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Use require instead of t.Fatalf in the test

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Apply the reviewer's suggestion to make the error message easier to read

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Add a comment noting what we're actually testing

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Correct the test comment and elaborate the special-case

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Tweak an error message and a comment

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Adjust to a change in the signature of a test function that was introduced in the main repository

Signed-off-by: yoheimuta <[email protected]>

---------

Signed-off-by: yoheimuta <[email protected]>
timvaillancourt added a commit to slackhq/vitess that referenced this pull request May 28, 2024
* add vtgate flag that explicitly allows vstream copy (#125)

* fix fs.BoolVar

Signed-off-by: Tim Vaillancourt <[email protected]>

* VSCopy: Resume the copy phase consistently from given GTID and lastpk (vitessio#11103)

* VSCopy: Demonstrate to fail a test case on which the vstream API is supposed to resume the copy phase consistently

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Resume the copy phase consistently from given GTID and lastpk

Signed-off-by: yoheimuta <[email protected]>

* Build out the unit test some more

Signed-off-by: Matt Lord <[email protected]>

* Update tests for new behavior

Signed-off-by: Matt Lord <[email protected]>

* Improve comments

Signed-off-by: Matt Lord <[email protected]>

* Limit uvstreamer changes and update test

Signed-off-by: Matt Lord <[email protected]>

* Revert uvstreamer test changes

Signed-off-by: Matt Lord <[email protected]>

* Revert all uvstream changes

Signed-off-by: Matt Lord <[email protected]>

* VCopy: Revert the last three commits

Signed-off-by: yoheimuta <[email protected]>

* VCopy: Add a new vstream type that allows picking up where we left off

Signed-off-by: yoheimuta <[email protected]>

* VCopy: Revert the unit test change

Signed-off-by: yoheimuta <[email protected]>

* VCopy: Fix the end-to-end CI test

Signed-off-by: yoheimuta <[email protected]>

* Update logic for setting up uvstreamer based on input vgtid/tablepks. Add more catchup events to test

Signed-off-by: Rohit Nayak <[email protected]>

* Refactor logic to decide if event is to be sent. Enhance unit and e2e tests.

Signed-off-by: Rohit Nayak <[email protected]>

* Don't send events for tables which we can identify as ones we haven't started copy for

Signed-off-by: Rohit Nayak <[email protected]>

* Minor changes after self-review

Signed-off-by: Rohit Nayak <[email protected]>

* Add vstream copy resume to release notes

Signed-off-by: Matt Lord <[email protected]>

* Address review comments

Signed-off-by: Matt Lord <[email protected]>

Signed-off-by: yoheimuta <[email protected]>
Signed-off-by: Matt Lord <[email protected]>
Signed-off-by: Rohit Nayak <[email protected]>
Co-authored-by: Matt Lord <[email protected]>
Co-authored-by: Rohit Nayak <[email protected]>

* VSCopy: Send COPY_COMPLETED events when the copy operation is done (vitessio#11740)

* VSCopy: Demonstrate to fail a test case on which the vstream API sends new events showing copy completed

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Send new events when the copy operation is done

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Fix typo

Signed-off-by: yoheimuta <[email protected]>

* Initialize new map for the 'vstream * from' vtgate sql interface. Make vtadmin web protos

Signed-off-by: Rohit Nayak <[email protected]>

* VSCopy: Make TestVStreamCopyBasic fail fast to avoid the end2end timeout out

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: stop sharing the 't1' table among multiple test cases running concurrently

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: refactor the function signature to be clearer

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: refactor the VEvents sorter to be simpler

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: refactor to stop the sorter from including a fully copied event

Signed-off-by: yoheimuta <[email protected]>

Signed-off-by: yoheimuta <[email protected]>
Signed-off-by: Rohit Nayak <[email protected]>
Co-authored-by: Rohit Nayak <[email protected]>

* VSCopy: Enable to copy from all shards in either a specified keyspace or all keyspaces (vitessio#11909)

* VSCopy: Demonstrate to fail a test case on which the vstream API request doesn't include keyspace and shard

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Copy from all shards in all keyspaces by specifying only an empty gtid

Signed-off-by: yoheimuta <[email protected]>

* tests: Make TestRowCount stable regardless of the number of keyspaces

Signed-off-by: yoheimuta <[email protected]>

* tests: Cleanup TestCreateAndDropDatabase correctly to stop TestVStreamCopyWithoutKeyspaceShard from failing when running tests together

Signed-off-by: yoheimuta <[email protected]>

* tests: Tweak to fix a comment

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: fix the unit tests when the input vgtid with an empty gtid lacks either keyspace or shard

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Keyspace wildcard selection lines up with the table wildcard selection

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Tests the VCopy with multiple keyspaces and resharding

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Make TestVStreamCopyMultiKeyspaceReshard clearer to check if the streaming two keyspaces works even after reshard

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Return an invalid argument error if shards are unspecified and gtid is neither 'current' nor empty

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Add a test description about its purpose and target

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Remove duplicate literals in the test

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Retain defaultReplicas variable in the test

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Explain why we are setting Match to 'customer.*' in the test

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Remove an unused VStreamFlag for the test

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Use sentence capitalization in the test

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Verify that we didn't lose any events or get duplicates of the keyspace being reshareded in the test

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Return a value instead of a pointer because there is no need to modify the value

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Add a comment describing what TestVStreamCopyFromAllKeyspacesAndAllShards is doing and why

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Add a comment describing why we expect these specific numbers of events from VStream API

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Tweak the test case name

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Make a utility function to sort COPY_COMPLETED events in the test

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Replace the matcher with a simpler one in the test

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Move the print debug call to the FailNow section in the test

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Use require.NoError in new tests

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Use require instead of t.Fatalf in the test

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Apply the reviewer's suggestion to make the error message easier to read

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Add a comment noting what we're actually testing

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Correct the test comment and elaborate the special-case

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Tweak an error message and a comment

Signed-off-by: yoheimuta <[email protected]>

* VSCopy: Adjust to a change in the signature of a test function that was introduced in the main repository

Signed-off-by: yoheimuta <[email protected]>

---------

Signed-off-by: yoheimuta <[email protected]>

* attempt unit test fix

Signed-off-by: Tim Vaillancourt <[email protected]>

* update test error expected

Signed-off-by: Tim Vaillancourt <[email protected]>

---------

Signed-off-by: Tim Vaillancourt <[email protected]>
Signed-off-by: yoheimuta <[email protected]>
Signed-off-by: Matt Lord <[email protected]>
Signed-off-by: Rohit Nayak <[email protected]>
Co-authored-by: pbibra <[email protected]>
Co-authored-by: yohei yoshimuta <[email protected]>
Co-authored-by: Matt Lord <[email protected]>
Co-authored-by: Rohit Nayak <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

VSCopy: Copy from all shards in all keyspaces by specifying only an empty gtid
4 participants