-
Notifications
You must be signed in to change notification settings - Fork 2.1k
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
Online DDL: ensure message is valid utf8
in updateMigrationMessage()
#11914
Online DDL: ensure message is valid utf8
in updateMigrationMessage()
#11914
Conversation
Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
Review ChecklistHello reviewers! 👋 Please follow this checklist when reviewing this Pull Request. General
If a new flag is being introduced:
If a workflow is added or modified:
Bug fixes
Non-trivial changes
New/Existing features
Backward compatibility
|
If we already know length to be a potential issue, should we already always truncate the string then anyway? And do that change here as well? |
go/vt/vttablet/onlineddl/executor.go
Outdated
if err != nil { | ||
|
||
update := func(message string) error { | ||
message = strings.ToValidUTF8(message, "") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we want to use �
as the replacement here since that's the canonical UTF-8 replacement character (and also what a console / log today would already print).
See also https://www.fileformat.info/info/unicode/char/fffd/index.htm
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@dbussink sounds good. I'm down for maintenance, would you like to push that change?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
truncating length to |
@systay Looks like your recent fixes for the planner are triggered in the upgrade tests (from https://github.com/vitessio/vitess/actions/runs/3648727440/jobs/6203228592):
Not sure if that would be fixed if this PR is updated with latest The issue is not related to the changes here in this PR though. |
message = strings.ToValidUTF8(message, "�") | ||
if len(message) > maxlen { | ||
message = message[0:maxlen] | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@shlomi-noach Realizing that we should change the order here I think. Since slicing this can then break the last character if the slicing happens on a word boundary and it still creates invalidly encoded data.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since message
is a TEXT
, 16383
would be a safe maxlen. But we still then need to flip the order, so first truncate and then convert to valid UTF-8. It could lead to a �
at the end if then we break the last potentially valid unicode char, but I think that's a totally ok trade off if the message is that long already anyway.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
#11923 should have fixed this |
…1438) * fix bug when planning group by (#1417) * Online DDL: ensure message is valid `utf8` in `updateMigrationMessage()` (#11914) (#1418) * OnlineDDL: handle binary/invalid data in updateMigrationMessage() Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * Ensure error message is valid utf8 Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * cap length; special replacement character Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * swap order, so that utf8 compliance of string is ensured Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * nightly: Push to ECR and build latest-15.0 (#1426) * kmsbackup: add logging to debug request failures (#1412) * Change limiting algorithm for sending vtgate.v1.Query messages to kafka (#1419) * Change limiting algorithm for sending vtgate.v1.Query messages to kafka * previously: allow up to 100 messages per 15 second interval. After the limit is reached drop all messages until the next interval. 400 messages/minute * 1,440 minutes/day = 576k max messages per day (per vtgate). * in this pr: use a token bucket with a burst capacity of 100 messages. Tokens are added back into the bucket at the rate of 0.1 per second. 0.1 messages/second * 86,400 seconds/day = 8.64k max messages per day (per vtgate). Making this change because a customer is currently spamming Insights with near constant errors and with 9 vtgates is producing millions of error messages per day. We want to cap this number to something much lower, but setting the messages/interval cap to a much lower number would mean we would miss many potentially interesting events. Using a token bucket allows us to burst up to 100 messages when something interesting happens, but limits the overall throughput to a comparatively low volume. Signed-off-by: Rafer Hazen <rafer@ralua.com> * Add two-tiered limiter Signed-off-by: Rafer Hazen <rafer@ralua.com> * Fix a comment Signed-off-by: Rafer Hazen <rafer@ralua.com> * Rename some variables for clarity Signed-off-by: Rafer Hazen <rafer@ralua.com> * Add new command line options to end to end expectation Signed-off-by: Rafer Hazen <rafer@ralua.com> * Test token replenishing Signed-off-by: Rafer Hazen <rafer@ralua.com> * Appease the gofmt linter Signed-off-by: Patrick Reynolds <patrick@piki.org> * Simplify the Insights per-interval limit logic It had three fields but really only needs two. I also wrapped the test cases for it in a `t.Run` with per-case unique names. Signed-off-by: Patrick Reynolds <patrick@piki.org> * Fix some comments, rename a test variable Signed-off-by: Rafer Hazen <rafer@ralua.com> Signed-off-by: Rafer Hazen <rafer@ralua.com> Signed-off-by: Patrick Reynolds <patrick@piki.org> Co-authored-by: Patrick Reynolds <patrick@piki.org> Signed-off-by: Rohit Nayak <rohit@planetscale.com> * Remove (CallerID: $username) from insights errors (#1434) This value is now populated with a real username. Since we don't want errors to group differently based on which user issued the query, and the username is already stored in Query#Username, this can be removed. Signed-off-by: Rafer Hazen <rafer@ralua.com> Signed-off-by: Rafer Hazen <rafer@ralua.com> Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> Signed-off-by: Rafer Hazen <rafer@ralua.com> Signed-off-by: Patrick Reynolds <patrick@piki.org> Signed-off-by: Rohit Nayak <rohit@planetscale.com> Co-authored-by: Andres Taylor <andres@planetscale.com> Co-authored-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> Co-authored-by: John Watson <johnw@planetscale.com> Co-authored-by: Max Englander <max@planetscale.com> Co-authored-by: Rafer Hazen <rafer@ralua.com> Co-authored-by: Patrick Reynolds <patrick@piki.org>
…io#1625) * Trigger OnlineDDL workflow when test data changes (#11827) * trigger OnlineDDL workflow when test data changes Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * trigger schemadiff workflows too Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * BugFix: Escaping Percentage and Underscore require special handling (#11823) * test: add failing end to end test for escaped % and _ Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: preserve escaping of \ and % in the parser Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: add end to end test and planner test to verify that % and _ handling is correct in Vitess on vtgate level Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: add test to evaluation engine to verify that backslash and underscore and handled correctly even when escaped Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: remove unrequired changes Signed-off-by: Manan Gupta <manan@planetscale.com> Signed-off-by: Manan Gupta <manan@planetscale.com> * Incremental logical backup and point in time recovery (#11097) * Unexplode Backup() function, pass BackupRequest as argument Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * use tabletmanagerdata.BackupRequest Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * make proto Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * removed duplicate tabletmanagerdata imports Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * tabletmanagerdatapb Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * vschemapb Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * require.NoError Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * proto: BackupRequest.incremental_from_pos Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * pass IncrementalFromPos Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * populate incremental_from_pos Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * Storing ServerUUID and TabletAlias as part of backup MANIFESTO Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * use IncrementalFromPos in BackupParams, populate Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * executeIncrementalBackup Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * add unit tests for GTID 'Contains' Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * Add binlog related functions in MySQLDaemon Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * More functionality in incremental backup Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * add backupBinlogDir as a valid backup directory Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * include FromPosition in the backup manifest. Find binlog files to backup Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * complete incremental backup Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * clarify the difference between user's requested position, and the FromPosition in the manifest. Add 'Incremental' (bool) to the manifest Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * make vtadmin_web_proto_types Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * Add Keyspace, Shard to backup manifest Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * for good order, keyspace comes first Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * take into account purged GTIDs. Fix value of 'incrementalBackupToGTID' Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * endtoend tests for incremental backup. No restore validation as yet. Tests do not have a GitHub workflow yet. Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * Adding CI shard: 'backup_pitr' Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * cleanup Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * backup_pitr tested via mysql80 Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * insert data with hint Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * refactor Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * FindPITRPath: find a shortest path to recover a GTID position, base on one full backup and zero or more inremental backups Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * more validation Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * more test cases Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * RestoreFromBackupRequest: RestoreToPos Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * vtctl Restore: '--restore_to_pos' Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * make vtadmin_web_proto_types Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * RestoreFromBackupRequest: RestoreToPos Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * Unexplode: RestoreFromBackup() receives req *tabletmanagerdatapb.RestoreFromBackupRequest Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * Unexplode: RestoreFromBackup() receives req *tabletmanagerdatapb.RestoreFromBackupRequest Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * make vtadmin_web_proto_types Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * populate restoreParams.RestoreToPos Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * simplifying the logic of finding relevant backup Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * fix switch/break logic Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * towards a restore path Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * golang version Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * fix workflows ubuntu version Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * skip nil manifests Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * FindBackupToRestore() returns a RestorePath, which is an ordered sequence of backup manifests/handles Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * linter suggestion Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * fix backup time comparison logic Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * vtctl Restore supports --dry_run flag Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * flag --incremental-from-pos accepts the value 'auto', which takes the next incremental backup from last good backup Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * make vtadmin_web_proto_types Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * endtoend: validate --incremental_from_pos=auto Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * towards applying binary logs: extracting onto temporary directory Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * apply binary log file Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * do not restore replication at end of PITR Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * take dryrun into consideration Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * testing restore to pos Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * testing restore to pos: wait for replication, avoid bogus writes Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * validating PITR path when binary logs are missing history Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * full backup manifest now includes 'PurgedPosition', which is necessary to build a restore path. Now evaluated in IsValidIncrementalBakcup Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * more recovery paths tests Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * restrucutre tests Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * log restore path Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * generate CI workflows Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * code comments Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * code comments Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * code comments Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * CI 57 and 80 Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * flags test Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * copyright year Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * go version Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * removed legacy mysql80 test Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * PITR: stop search for possible resotre path with the first valid path, even if it's not the optimal Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * support incrementally union-izing of previous-GTIDs when iterating binary logs Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * removed local metadata info Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * merged main, regenerated workflows Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * go mod tidy Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * rename conflicting variable Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * refactor: const value Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * dry run restore now returns with 0 exit code, no error Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * release notes Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * Migrate to GitHub OIDC based auth for Launchable (#11808) This change updates the CI workflows to use the new GitHub OpenID connect based authentication flow. GitHub started to provide a public-key signed token that contain pull-request data. This is commonly used as a short-lived token in the authentication flow (Open ID Connect). Launchable recently started supporting this. Migrate to this new method. The permission clause added to the jobs is more restrictive than the default access except for the "id-token: write" permission (https://docs.github.com/en/actions/security-guides/automatic-token-authentication#permissions-for-the-github_token). This should give the e2e tests enough permissions to run. The id-token permission is necessary to get the OIDC ID tokens as instructed by the GitHub article https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect#adding-permissions-settings. See https://docs.launchableinc.com/sending-data-to-launchable/migration-to-github-oidc-auth for the overview and the process. Signed-off-by: Masaya Suzuki <draftcode@gmail.com> Signed-off-by: Masaya Suzuki <draftcode@gmail.com> * feat: add instructions on how to fix a self-hosted runner running out of disk space (#11839) Signed-off-by: Manan Gupta <manan@planetscale.com> Signed-off-by: Manan Gupta <manan@planetscale.com> * Fix closing the body for HTTP requests (#11842) One of the easy things to miss that can cause resource leaks is not closing a response body for an HTTP request. There's a linter available to make it easier to catch this, so this enables that linter and fixes all the cases reported. This is almost all test cases, except for one production code path case in the throttler. Signed-off-by: Dirkjan Bussink <d.bussink@gmail.com> Signed-off-by: Dirkjan Bussink <d.bussink@gmail.com> * Remove vtctld2 UI and vtctld server components that serve the app UI Signed-off-by: notfelineit <notfelineit@gmail.com> * Add back http port Signed-off-by: notfelineit <notfelineit@gmail.com> * Release notes for 15.0.1 (#11850) Signed-off-by: Rameez Sajwani <rameezwazirali@hotmail.com> Signed-off-by: Rameez Sajwani <rameezwazirali@hotmail.com> * Release notes summary of `14.0.4` (#11849) * Release notes for 14.0.4 Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * release summary for v14.0.4 Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * Fix deprecated usage of set-output (#11844) The `set-output` command is deprecated and will break in the future. This moves to the new style for all our GitHub Actions. See also https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/ Signed-off-by: Dirkjan Bussink <d.bussink@gmail.com> Signed-off-by: Dirkjan Bussink <d.bussink@gmail.com> * VReplication: Remove Deprecated V1 Client Commands (#11705) * Remove SwitchReads/SwitchWrites client commands Signed-off-by: Matt Lord <mattalord@gmail.com> * Remove Reshard/MoveTables v1 client commands Signed-off-by: Matt Lord <mattalord@gmail.com> * Misc text clarifications Signed-off-by: Matt Lord <mattalord@gmail.com> * Fix TestVreplicationCopyThrottling Signed-off-by: Matt Lord <mattalord@gmail.com> * Remove DropSources Signed-off-by: Matt Lord <mattalord@gmail.com> * Add removal info to release notes Signed-off-by: Matt Lord <mattalord@gmail.com> * Reduce flakiness of copy_state optimization check Signed-off-by: Matt Lord <mattalord@gmail.com> * Minor tweaks after self review Signed-off-by: Matt Lord <mattalord@gmail.com> * De-flake sharded pitr test Signed-off-by: Matt Lord <mattalord@gmail.com> Signed-off-by: Matt Lord <mattalord@gmail.com> * updating summary and release notes for v15.0.1 (#11852) * updating summary and release notes for v15.0.1 Signed-off-by: Rameez Sajwani <rameezwazirali@hotmail.com> * fixing typos Signed-off-by: Rameez Sajwani <rameezwazirali@hotmail.com> Signed-off-by: Rameez Sajwani <rameezwazirali@hotmail.com> * Simplify recursive data structure in CFC Vindex (#11843) * fix: remove recursize data dag in CFC Vindex Signed-off-by: Harshit Gangal <harshit@planetscale.com> * test: update test expectation Signed-off-by: Harshit Gangal <harshit@planetscale.com> * addressed review comments Signed-off-by: Harshit Gangal <harshit@planetscale.com> Signed-off-by: Harshit Gangal <harshit@planetscale.com> * Update throttler-topo workflow file (#11784) Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * [cleanup] Explicitly include DDLStrategySetting in the sizegen target (#11857) Closes #11856. Signed-off-by: Andrew Mason <andrew@planetscale.com> Signed-off-by: Andrew Mason <andrew@planetscale.com> * VSCopy: Send COPY_COMPLETED events when the copy operation is done (#11740) * VSCopy: Demonstrate to fail a test case on which the vstream API sends new events showing copy completed Signed-off-by: yoheimuta <yoheimuta@gmail.com> * VSCopy: Send new events when the copy operation is done Signed-off-by: yoheimuta <yoheimuta@gmail.com> * VSCopy: Fix typo Signed-off-by: yoheimuta <yoheimuta@gmail.com> * Initialize new map for the 'vstream * from' vtgate sql interface. Make vtadmin web protos Signed-off-by: Rohit Nayak <rohit@planetscale.com> * VSCopy: Make TestVStreamCopyBasic fail fast to avoid the end2end timeout out Signed-off-by: yoheimuta <yoheimuta@gmail.com> * VSCopy: stop sharing the 't1' table among multiple test cases running concurrently Signed-off-by: yoheimuta <yoheimuta@gmail.com> * VSCopy: refactor the function signature to be clearer Signed-off-by: yoheimuta <yoheimuta@gmail.com> * VSCopy: refactor the VEvents sorter to be simpler Signed-off-by: yoheimuta <yoheimuta@gmail.com> * VSCopy: refactor to stop the sorter from including a fully copied event Signed-off-by: yoheimuta <yoheimuta@gmail.com> Signed-off-by: yoheimuta <yoheimuta@gmail.com> Signed-off-by: Rohit Nayak <rohit@planetscale.com> Co-authored-by: Rohit Nayak <rohit@planetscale.com> * add frances to maintainers (#11865) Signed-off-by: deepthi <deepthi@planetscale.com> Signed-off-by: deepthi <deepthi@planetscale.com> * VReplication: Prevent Orphaned VDiff2 Jobs (#11768) * Prevent orphaned VDiffs in two ways... 1. When opening the engine, restart any vdiffs that are in the started state as this indicates it did not complete and was unable to save the final state and must be restarted. 2. When a vdiff run fails, retry saving the error state with an exponential backoff until the engine shuts down. This way the normal retry mechanism will kick in OR #1 will kick in when the engine is next opened on the primary tablet. Signed-off-by: Matt Lord <mattalord@gmail.com> * Handle failures before vdiff_table records are created Signed-off-by: Matt Lord <mattalord@gmail.com> * Add more ephemeral client errors Signed-off-by: Matt Lord <mattalord@gmail.com> * Show vdiff state of error even if no vdiff_table records Signed-off-by: Matt Lord <mattalord@gmail.com> * Minor cleanup Signed-off-by: Matt Lord <mattalord@gmail.com> * Add vdiff2 unit tests Signed-off-by: Matt Lord <mattalord@gmail.com> * Add unit test for retry Signed-off-by: Matt Lord <mattalord@gmail.com> * Small cleanup Signed-off-by: Matt Lord <mattalord@gmail.com> * Addressing review comments and other improvements Signed-off-by: Matt Lord <mattalord@gmail.com> * Use warning log for ... warnings :-) Signed-off-by: Matt Lord <mattalord@gmail.com> * Minor touch ups Signed-off-by: Matt Lord <mattalord@gmail.com> Signed-off-by: Matt Lord <mattalord@gmail.com> * update golangci-lint to 1.50.1 (#11873) Signed-off-by: Andres Taylor <andres@planetscale.com> Signed-off-by: Andres Taylor <andres@planetscale.com> * [planner] Better AST equality (#11867) * make it possible to do deep comparisons with custom logic Signed-off-by: Andres Taylor <andres@planetscale.com> * use the new EqualS function to do deep semantic equality Signed-off-by: Andres Taylor <andres@planetscale.com> * re gen the asthelpergen integration test data Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * update equal gen comment Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * test: add unit tests showing the new EqualsExpr functionality Signed-off-by: Andres Taylor <andres@planetscale.com> * [planner] use the semantic equality in more places Signed-off-by: Andres Taylor <andres@planetscale.com> * comments - update to reflect new code Signed-off-by: Andres Taylor <andres@planetscale.com> * small fixes around tests Signed-off-by: Andres Taylor <andres@planetscale.com> * update integration test build Signed-off-by: Andres Taylor <andres@planetscale.com> * use semantic equality for Anding together expressions Signed-off-by: Andres Taylor <andres@planetscale.com> * test: simplify test Signed-off-by: Andres Taylor <andres@planetscale.com> Signed-off-by: Andres Taylor <andres@planetscale.com> Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> Co-authored-by: Florent Poinsard <florent.poinsard@outlook.fr> * Parse binlog variable length encoded columns (#11871) * Test for large table map binlog events Signed-off-by: Dirkjan Bussink <d.bussink@gmail.com> * Use variable length encoded integers for tablemap The table map binlog event is defined as using variable integer lengths for the number of columns and the metadata length. This was hardcoded to using a single byte, so any lengths longer than 250 would be interpreted wrong. This was already annotated as a FIXME. Signed-off-by: Dirkjan Bussink <d.bussink@gmail.com> * Add test for large row event Signed-off-by: Dirkjan Bussink <d.bussink@gmail.com> * Use variable length encoding for binlog row events Signed-off-by: Dirkjan Bussink <d.bussink@gmail.com> * Adding endtoend vreplicatoin test that validates many columns in a table Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * test that adds a column on top of many columns Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> Signed-off-by: Dirkjan Bussink <d.bussink@gmail.com> Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> Co-authored-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * Online DDL: fix 'vtctlclient OnlineDDL' template queries (#11889) Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * Fix MySQL56 GTID parsing when SID/UUID repeats (#11888) * Fix MySQL56 GTID parsing when SID/UUID repeats Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * beautify tests Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * feat: fix checkMySQL and add tests and documentation (#11895) Signed-off-by: Manan Gupta <manan@planetscale.com> Signed-off-by: Manan Gupta <manan@planetscale.com> * Add back tablet proxy for api, remove workflows, modify vtctld scripts to remove workflow flags Signed-off-by: notfelineit <notfelineit@gmail.com> * Add vtctld removal to release notes for 16 Signed-off-by: notfelineit <notfelineit@gmail.com> * Remove traces of deleted flags Signed-off-by: notfelineit <notfelineit@gmail.com> * Make vtctld_show_topology_crud flag deprecated instead of removed Signed-off-by: notfelineit <notfelineit@gmail.com> * more unit tests for QueryMatchesTemplates() (#11894) Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * sqlparser: new Equality API (#11906) * sqlparser: use a new Equals API Signed-off-by: Vicent Marti <vmg@strn.cat> * tools: refactor how asthelpergen is invoked Signed-off-by: Vicent Marti <vmg@strn.cat> * goimports, flags and linter Signed-off-by: Andres Taylor <andres@planetscale.com> Signed-off-by: Vicent Marti <vmg@strn.cat> Signed-off-by: Andres Taylor <andres@planetscale.com> Co-authored-by: Andres Taylor <andres@planetscale.com> * bugfix: allow predicates without dependencies with derived tables to be handled correctly (#11911) * bugfix: allow predicates on top of derived tables to be handled without dependencies Signed-off-by: Andres Taylor <andres@planetscale.com> * stop normalizer from changing literals into bindvars Signed-off-by: Andres Taylor <andres@planetscale.com> Signed-off-by: Andres Taylor <andres@planetscale.com> * Simplify `getPlan` and `gen4CompareV3` (#11903) * simplify getPlan and gen4CompareV3 Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * fix error return in getPlan Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * optimize joins, redirect dml for reference tables (#11875) * go/vt/vtgate, proto: add "source" field to vschema * Add "source" field to vschema reference tables. * Model "source" field in go/vt/vtgate/vindexes/vschema.go. * Treat multiple tables in different keyspaces as unambiguous when all of those tables are references to or by each other. Signed-off-by: Max Englander <max@planetscale.com> * go/vt/vtgate/planbuilder: plan reference joins Given: * Two unsharded keyspace `k1` and sharded keyspace `k2`. * Source table `k1.r` and reference table `k2.r`. * Sharded table `k2.x`. The previous commit adds support to globally route `r` to `k1.r`. This means that `SELECT x JOIN r` will join `k1.r` to `x`, but what we want is to join `k2.r`. This commit propagates `vindexes.Table.Source` info from the `vindexes.VSchema` into `operators.Route`, and uses that information when planning joins. Signed-off-by: Max Englander <max@planetscale.com> * go/vt/vtgate/vindexes: test reference source constraints Signed-off-by: Max Englander <max@planetscale.com> * go/vt/vtgate/vindexes: FindTable unit tests for reference sources Signed-off-by: Max Englander <max@planetscale.com> * go/vt/vtgate/vindexes: build keyspace allow unresolved references Signed-off-by: Max Englander <max@planetscale.com> * go/vt/vtgate: executor unit test reference tables Signed-off-by: Max Englander <max@planetscale.com> * go/vt/vtgate: executor unit test reference dml Signed-off-by: Max Englander <max@planetscale.com> * go/vt/vtgate/vindexes: avoid bi-directional references (causes infinite loop) Signed-off-by: Max Englander <max@planetscale.com> * go/test/endtoend/vtgate: test reference tables Signed-off-by: Max Englander <max@planetscale.com> * tidy up Signed-off-by: Max Englander <max@planetscale.com> * address pr comments round 1 Signed-off-by: Max Englander <max@planetscale.com> * address pr feedback round 2: dont use replicas in tests when not needed Signed-off-by: Max Englander <max@planetscale.com> * address pr feedback round 2: use vterrors in vschema.go Signed-off-by: Max Englander <max@planetscale.com> * fix tests Signed-off-by: Max Englander <max@planetscale.com> * address pr feedback round 3: fix e2e test Signed-off-by: Max Englander <max@planetscale.com> * address pr feedback round 3: optimally route dml Signed-off-by: Max Englander <max@planetscale.com> * address pr feedback round 3: fix e2e & plan tests (primitive.GetTablesUsed) Signed-off-by: Max Englander <max@planetscale.com> * forgot to commit these :facepalm: Signed-off-by: Max Englander <max@planetscale.com> * move TablesUsed from engine => planbuilder Signed-off-by: Max Englander <max@planetscale.com> * rm engine.(any).GetTablesUsed Signed-off-by: Max Englander <max@planetscale.com> * rm engine.(any).MergedWith; revert engine.(*Route).TableNames => engine.(*Route).TableName Signed-off-by: Max Englander <max@planetscale.com> * tidy up Signed-off-by: Max Englander <max@planetscale.com> * address pr feedback round 3: redir gen4 insert to source Signed-off-by: Max Englander <max@planetscale.com> * address pr feedback round 4: remove unused (vindexFunc).TableName Signed-off-by: Max Englander <max@planetscale.com> Signed-off-by: Max Englander <max@planetscale.com> * Upgrade to `go1.19.4` (#11905) * upgrade to go1.19.4 Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * use bootstrap version 14 Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * Add support for views in vtgate (#11195) * feat: add view support to vtgate Signed-off-by: Andres Taylor <andres@planetscale.com> * feat: added views to the vschema Signed-off-by: Andres Taylor <andres@planetscale.com> * refactor: change the VSchemaViews to return SelectStatement Signed-off-by: Andres Taylor <andres@planetscale.com> * feat: hook up the new views in the vschema with the ast rewriter Signed-off-by: Andres Taylor <andres@planetscale.com> * feat: make it possible to find uniquely named views Signed-off-by: Andres Taylor <andres@planetscale.com> * fix: make sure to create new ColNames of the view AST Signed-off-by: Andres Taylor <andres@planetscale.com> * test: added views unit test Signed-off-by: Harshit Gangal <harshit@planetscale.com> * test: added e2e tesT Signed-off-by: Harshit Gangal <harshit@planetscale.com> * feat: added create view vschema ddl Signed-off-by: Harshit Gangal <harshit@planetscale.com> * feat: implement create view vschema ddl action update Signed-off-by: Harshit Gangal <harshit@planetscale.com> * sizegen rerun Signed-off-by: Harshit Gangal <harshit@planetscale.com> * test: added unit test for create view vschema ddl Signed-off-by: Harshit Gangal <harshit@planetscale.com> * feat: added replace view support in vschema ddl Signed-off-by: Harshit Gangal <harshit@planetscale.com> * doc: view support summary notes Signed-off-by: Harshit Gangal <harshit@planetscale.com> * feat: vschema drop view ddl support Signed-off-by: Harshit Gangal <harshit@planetscale.com> * Revert "feat: vschema drop view ddl support" This reverts commit 744f2e9e763d49654355340548dc8746f6c80d6a. Signed-off-by: Harshit Gangal <harshit@planetscale.com> * Revert "feat: added replace view support in vschema ddl" This reverts commit 5394e9b8d64f28e708591bfbb9137ddb961497e2. Signed-off-by: Harshit Gangal <harshit@planetscale.com> * Revert "test: added unit test for create view vschema ddl" This reverts commit 54ffe11ba96d127fe043eb9a7d379085caecce59. Signed-off-by: Harshit Gangal <harshit@planetscale.com> * Revert "sizegen rerun" This reverts commit 9f7ff6b31dfc32ea483f66d93a7f7d7f0239a3d6. Signed-off-by: Harshit Gangal <harshit@planetscale.com> * Revert "feat: implement create view vschema ddl action update" This reverts commit c0123447bf2c8b6533bc7629bc7acd176ae8c764. Signed-off-by: Harshit Gangal <harshit@planetscale.com> * Revert "feat: added create view vschema ddl" This reverts commit be623f935689082c3a20e8507efc3d1c5c1a245b. Signed-off-by: Harshit Gangal <harshit@planetscale.com> * fix: e2e test Signed-off-by: Harshit Gangal <harshit@planetscale.com> * removed views from vschema proto Signed-off-by: Harshit Gangal <harshit@planetscale.com> * go back to using Table and not *string for uniqueTables Signed-off-by: Andres Taylor <andres@planetscale.com> * salvage bad merge Signed-off-by: Andres Taylor <andres@planetscale.com> Signed-off-by: Andres Taylor <andres@planetscale.com> Signed-off-by: Harshit Gangal <harshit@planetscale.com> Co-authored-by: Harshit Gangal <harshit@planetscale.com> * don't run test on older versions, since they fail (#11923) Signed-off-by: Andres Taylor <andres@planetscale.com> Signed-off-by: Andres Taylor <andres@planetscale.com> * Better clone of the VCursor (#11926) * Better clone of the VCursor Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * Move new implementations to the proper files Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * apply review suggestions Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * feat: add test and fix the error of not sending a ServerLost error on server side error (#11920) Signed-off-by: Manan Gupta <manan@planetscale.com> Signed-off-by: Manan Gupta <manan@planetscale.com> * Revert "Better clone of the VCursor (#11926)" (#11931) This reverts commit 035d6b7124e4ff4a99aa87aa549cc82acc05044a. Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * Correct minor inaccuracies in governing docs (#11933) Signed-off-by: deepthi <deepthi@planetscale.com> Signed-off-by: deepthi <deepthi@planetscale.com> * log: also log error in DiscoverInstance when force discovery is specified (#11936) Signed-off-by: Manan Gupta <manan@planetscale.com> Signed-off-by: Manan Gupta <manan@planetscale.com> * Onlineddl: formalize "immediate operations", respect `--postpone-completion` strategy flag (#11910) * Added endtoend test to validate postponed REVERT of an ALTER VIEW statement: test indicates a bug Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * ALTER VIEW now respects --postpone-completion flag Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * Online DDL: formalize 'immediate operations', respect --postpone-completion Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * typo Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * only test instant ddl in capable versions (ie 8.0) Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * more specific instant ddl capability Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * Update go/vt/vttablet/onlineddl/executor.go Co-authored-by: Deepthi Sigireddi <deepthi.sigireddi@gmail.com> Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * Update go/vt/vttablet/onlineddl/executor.go Co-authored-by: Deepthi Sigireddi <deepthi.sigireddi@gmail.com> Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * Update go/vt/vttablet/onlineddl/executor.go Co-authored-by: Deepthi Sigireddi <deepthi.sigireddi@gmail.com> Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> Co-authored-by: Deepthi Sigireddi <deepthi.sigireddi@gmail.com> * add Arthur to the maintainers file (#11937) * add Arthur to the mainternes file Signed-off-by: Andres Taylor <andres@planetscale.com> * add Arthur as code owner for the vtgate planbuilder Signed-off-by: Andres Taylor <andres@planetscale.com> * Update MAINTAINERS.md Co-authored-by: Arthur Schreiber <arthurschreiber@github.com> Signed-off-by: Andres Taylor <andres@taylor.se> Signed-off-by: Andres Taylor <andres@planetscale.com> Signed-off-by: Andres Taylor <andres@taylor.se> Co-authored-by: Arthur Schreiber <arthurschreiber@github.com> * Online DDL: ensure message is valid `utf8` in `updateMigrationMessage()` (#11914) * OnlineDDL: handle binary/invalid data in updateMigrationMessage() Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * Ensure error message is valid utf8 Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * cap length; special replacement character Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * swap order, so that utf8 compliance of string is ensured Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * [planner] Schema information on the information_schema views (#11941) * add info_schema information Signed-off-by: Andres Taylor <andres@planetscale.com> * add SchemaInformation handling for info_schema tables Signed-off-by: Andres Taylor <andres@planetscale.com> * fix bad test query Signed-off-by: Andres Taylor <andres@planetscale.com> * add support for information_schema on mysql 5.7 Signed-off-by: Andres Taylor <andres@planetscale.com> * columns sorted just like mysql, and tests for 5.7 Signed-off-by: Andres Taylor <andres@planetscale.com> * test: skip test that should not run Signed-off-by: Andres Taylor <andres@planetscale.com> Signed-off-by: Andres Taylor <andres@planetscale.com> * CODEOWNERS: Add vrepl team members for vtgate vstream and tablet picker (#11950) * Add vrepl team members for vtgate vstream and tablet picker Both vtgate components/services are related to VReplication. Signed-off-by: Matt Lord <mattalord@gmail.com> * Add vstream endtoend tests too Signed-off-by: Matt Lord <mattalord@gmail.com> Signed-off-by: Matt Lord <mattalord@gmail.com> * Release notes for 15.0.2 (#11963) Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * update the release 15.0.2 summary doc (#11956) Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> Co-authored-by: Florent Poinsard <florent.poinsard@outlook.fr> * moved missed flags to pflags in vtgate (#11966) * used pflags over flags on pending usages Signed-off-by: Harshit Gangal <harshit@planetscale.com> * removed flags from go/vt/vtgate/endtoend package Signed-off-by: Harshit Gangal <harshit@planetscale.com> * test: update test helper output Signed-off-by: Harshit Gangal <harshit@planetscale.com> * addressed review comments Signed-off-by: Harshit Gangal <harshit@planetscale.com> Signed-off-by: Harshit Gangal <harshit@planetscale.com> * Document error code in `vtgate/planbuilder` (#10738) * Addition of fundation for new error codes Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * Generate README on the stdout for error code Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * Added support for more error code Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * test new error code Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * test remove error code Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * test new error code Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * addition of the error code for the planbuilder package Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * Handle more errors of the vtgate package in the centralized error code Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * Use error code in more places after merge Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * Update code long usage Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * Add cause to OurError Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * update the plantest output Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * Update test expectation and run make codegen Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * Update test with VT05003 error Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * Fix vtgate tests Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * Add missing error code to doc list Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * Fix test TestExecutorAddDropVindexDDL Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * Fix english typo in VT03023 Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * Fix plan tests Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * revert unwanted change Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * make proto Signed-off-by: Andres Taylor <andres@planetscale.com> * Addition of comment to the error doc generator Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * Rename OurError to VitessError Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * consistent lower-case short error description Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * fix VT03001 long description Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * fix VT03005 short and long descriptions Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * fix VT03007, VT03012 and VT03021 long descriptions Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * fix VT05***, VT06001 and VT09*** descriptions Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * simplify VT09008 Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * fix VT12*** and VT13*** long descriptions Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * rename vterrors generation package to vterrorsgen instead of main Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * fix error syntax for distinct checkCol bug Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * fix syntax in error call Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * fix syntax in error call Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * fix syntax issues in error messages Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * fix syntax issues in error messages Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * fix syntax issues in error messages Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * fix syntax based on review suggestions Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * [gen4 tests] update test expectations Signed-off-by: Andres Taylor <andres@planetscale.com> * tests: updated more tests to use new error strings Signed-off-by: Andres Taylor <andres@planetscale.com> * added snippet to release notes Signed-off-by: Andres Taylor <andres@planetscale.com> * prepare errors so we can have more implementations Signed-off-by: Andres Taylor <andres@planetscale.com> * start cleaning up semantic errors Signed-off-by: Andres Taylor <andres@planetscale.com> * prefix unsupported errors Signed-off-by: Andres Taylor <andres@planetscale.com> * move more errors to structured errors Signed-off-by: Andres Taylor <andres@planetscale.com> * commit Signed-off-by: Andres Taylor <andres@planetscale.com> * moved binder to user structured errors Signed-off-by: Andres Taylor <andres@planetscale.com> * combine template must and parse Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * humanize error in hasCodeForRow for probeTable Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * humanize engine primitive errors Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * go through all the unsupported errors once Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * apply review suggestions Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * go through error call Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * add missing error in planbuilder Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * fix plan tests Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * fix insert E2E tests Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * clean release summary file Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * clean up long description for VT09006 and VT09007 Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * self-review PR once Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * update plan test output Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * update sementics package test output Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * database -> keyspace in error strings Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * fix plan_test output Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * use same long description as the one previously written in the docs Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * re generate the plan tests output Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * reformat error VT09003 Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * remove heading line from the error code generation template Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * update test expectation Signed-off-by: Andres Taylor <andres@planetscale.com> Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> Signed-off-by: Andres Taylor <andres@planetscale.com> Co-authored-by: Andres Taylor <andres@planetscale.com> * Migrate missed vtctld flags to pflag and immediately deprecate them (#11974) Signed-off-by: Andrew Mason <andrew@planetscale.com> Signed-off-by: Andrew Mason <andrew@planetscale.com> * Timeout Fixes and VTOrc Improvement (#11881) * refactor: move tests out of newfeaturestest so that they run on upgrade-downgrade tests too Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: add failing ers test for handling multiple vttablet failures with default values of flags Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: add a new lock-timeout flag and use that instead of remote-operation-timeout Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: augment DownPrimary test to reproduce the issue of VTOrc not handling multiple failures Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: remove LockShardTimeout configuration from VTOrc and add parallelism to refresh of tablets Signed-off-by: Manan Gupta <manan@planetscale.com> * log: add more logging lines around ers in vtorc Signed-off-by: Manan Gupta <manan@planetscale.com> * test: get the test to work Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: fix usage of wait for replicas timeout Signed-off-by: Manan Gupta <manan@planetscale.com> * test: fix flags expected output Signed-off-by: Manan Gupta <manan@planetscale.com> * test: fix race in test now that the function is called in parallel multiple times Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: fix default of onCloseTimeout to 1 second Signed-off-by: Manan Gupta <manan@planetscale.com> * test: add failing unit test to refreshTabletsInKeyspaceShard Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: fix vtorc to not forget a tablet which has been deleted Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: fix backward compatibility, add tests and release notes docs Signed-off-by: Manan Gupta <manan@planetscale.com> * test: fix flags output Signed-off-by: Manan Gupta <manan@planetscale.com> * test: use disable-replication-manager instead of disable-active-reparents to allow vttablets to setup replication when restarted Signed-off-by: Manan Gupta <manan@planetscale.com> * test: fix flaky test by not checking for an error Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: handle the case of empty hostname in tablet initialization Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: update onclose timeout to 10 seconds Signed-off-by: Manan Gupta <manan@planetscale.com> * test: fix unit test Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: address review comments Signed-off-by: Manan Gupta <manan@planetscale.com> * docs: add comments explaining the test functions Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: add summary docs for 'lock-shard-timeout' deprecation Signed-off-by: Manan Gupta <manan@planetscale.com> Signed-off-by: Manan Gupta <manan@planetscale.com> * Add manan and florent to Docker files CODEOWNERS (#11981) Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * vttestserver: make tablet_refresh_interval configurable and reduce default value (#11918) * setting up refresh_interval and check_leader_interval Signed-off-by: Rameez Sajwani <rameezwazirali@hotmail.com> * setting default value, if not provided Signed-off-by: Rameez Sajwani <rameezwazirali@hotmail.com> * fixing vttablet flags Signed-off-by: Rameez Sajwani <rameezwazirali@hotmail.com> * fixing vtttestserver flags Signed-off-by: Rameez Sajwani <rameezwazirali@hotmail.com> * adding comments and removing unwanted script Signed-off-by: Rameez Sajwani <rameezwazirali@hotmail.com> * code review Signed-off-by: Rameez Sajwani <rameezwazirali@hotmail.com> * removing leader Check interval Signed-off-by: Rameez Sajwani <rameezwazirali@hotmail.com> * change to flags out put file Signed-off-by: Rameez Sajwani <rameezwazirali@hotmail.com> * adding summary Signed-off-by: Rameez Sajwani <rameezwazirali@hotmail.com> * code review feedback Signed-off-by: Rameez Sajwani <rameezwazirali@hotmail.com> Signed-off-by: Rameez Sajwani <rameezwazirali@hotmail.com> * Add support for Views DDL (#11896) * create views table and start supporting it in vtgate Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * start supporting views in vttablet Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * feat: add create view ddl support by inserting into _vt.views table Signed-off-by: Harshit Gangal <harshit@planetscale.com> * feat: add support for create or replace view Signed-off-by: Harshit Gangal <harshit@planetscale.com> * feat: on view insert failure, return view already exists error Signed-off-by: Harshit Gangal <harshit@planetscale.com> * feat: add support for alter view ddl in vttablet Signed-off-by: Harshit Gangal <harshit@planetscale.com> * feat: add support for drop view ddl in vttablet Signed-off-by: Harshit Gangal <harshit@planetscale.com> * feat: add support for view ddl in vtgate Signed-off-by: Harshit Gangal <harshit@planetscale.com> * changed error to use new vitess error code Signed-off-by: Harshit Gangal <harshit@planetscale.com> * fix test expectation Signed-off-by: Harshit Gangal <harshit@planetscale.com> * change flag name to queryserver-enable-views to not conflict with vtgate for vtcombo binary Signed-off-by: Harshit Gangal <harshit@planetscale.com> * test: updated test help output Signed-off-by: Harshit Gangal <harshit@planetscale.com> * test: add create view ddl to fakedb query expectation Signed-off-by: Harshit Gangal <harshit@planetscale.com> * addressed review comments Signed-off-by: Harshit Gangal <harshit@planetscale.com> Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> Signed-off-by: Harshit Gangal <harshit@planetscale.com> Co-authored-by: Harshit Gangal <harshit@planetscale.com> * Add `VStreamerCount` stat to `vttablet` (#11978) * Add `VStreamersActive` stat to `vttablet` Signed-off-by: Tim Vaillancourt <tim@timvaillancourt.com> * Improve desc Signed-off-by: Tim Vaillancourt <tim@timvaillancourt.com> * Add PR suggestions Signed-off-by: Tim Vaillancourt <tim@timvaillancourt.com> * Move to *stats.Gauge Signed-off-by: Tim Vaillancourt <tim@timvaillancourt.com> * Single defer Signed-off-by: Tim Vaillancourt <tim@timvaillancourt.com> Signed-off-by: Tim Vaillancourt <tim@timvaillancourt.com> * VExplain statement (#11892) * feat: ast changes for vtexplain and adding the primitive to the interfaces Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: add planning for json output from vtexplain Signed-off-by: Manan Gupta <manan@planetscale.com> * test: add tests for vtexplain statements supported Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: handle todo for converting some explain statements to vtexplain Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: update parser after comments on rfc Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: fix planner to align with the new input format Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: add basic implementation for vexplain all Signed-off-by: Manan Gupta <manan@planetscale.com> * merge mysql and vitess primitive JSON and add E2E tests Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * remove old unit test and generate new plan tests Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> * feat: fix todos and augment tests Signed-off-by: Manan Gupta <manan@planetscale.com> * refactor: reintroduce removed comments Signed-off-by: Manan Gupta <manan@planetscale.com> * refactor: reintroduce more removed comments Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: add summary docs Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: remvoe exhaustive keyword which isn't required anymore Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: fix config.json file to point to the right folder Signed-off-by: Manan Gupta <manan@planetscale.com> * test: fix unit tests Signed-off-by: Manan Gupta <manan@planetscale.com> Signed-off-by: Manan Gupta <manan@planetscale.com> Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> Co-authored-by: Florent Poinsard <florent.poinsard@outlook.fr> * only expand when we have full information (#11998) Signed-off-by: Andres Taylor <andres@planetscale.com> Signed-off-by: Andres Taylor <andres@planetscale.com> * remove e2e test from partial_keyspace config (#12005) Signed-off-by: Andres Taylor <andres@planetscale.com> Signed-off-by: Andres Taylor <andres@planetscale.com> * remove log line (#12000) Signed-off-by: Andres Taylor <andres@planetscale.com> Signed-off-by: Andres Taylor <andres@planetscale.com> * Allow override of build git env in docker/base builds (#11968) * Pass BUILD_GIT_BRANCH and BUILD_GIT_REV env into docker build Signed-off-by: Tim Vaillancourt <tim@timvaillancourt.com> * Fix bootstrap version Signed-off-by: Tim Vaillancourt <tim@timvaillancourt.com> * Fix bootstrap version, again Signed-off-by: Tim Vaillancourt <tim@timvaillancourt.com> * Fix ws Signed-off-by: Tim Vaillancourt <tim@timvaillancourt.com> Signed-off-by: Tim Vaillancourt <tim@timvaillancourt.com> Signed-off-by: Florent Poinsard <florent.poinsard@outlook.fr> Co-authored-by: Florent Poinsard <florent.poinsard@outlook.fr> * feat: fix vttestserver run script defaults (#12004) Signed-off-by: Manan Gupta <manan@planetscale.com> Signed-off-by: Manan Gupta <manan@planetscale.com> * Fix parsing and normalization of floating point types (#12009) * Fix parsing of float type with single length attribute MySQL can also parse this so ensure that we're compatible here. This is deprecated but it can still be used to create tables but in MySQL 8 this length is ignored on the final table. Signed-off-by: Dirkjan Bussink <d.bussink@gmail.com> * Add float4 and float8 aliases for float and double Signed-off-by: Dirkjan Bussink <d.bussink@gmail.com> * Normalize floating point values according to MySQL rules Signed-off-by: Dirkjan Bussink <d.bussink@gmail.com> * Simplify parser with reuse Signed-off-by: Dirkjan Bussink <d.bussink@gmail.com> Signed-off-by: Dirkjan Bussink <d.bussink@gmail.com> * feat: add vtorc port to vitess local docker run (#12001) Signed-off-by: Manan Gupta <manan@planetscale.com> Signed-off-by: Manan Gupta <manan@planetscale.com> * VDiff2: Migrate VDiff1 Unit Tests (#11916) * Initial workflow differ tests Signed-off-by: Matt Lord <mattalord@gmail.com> * More tests Signed-off-by: Matt Lord <mattalord@gmail.com> * Playing with vdiffEnv Signed-off-by: Matt Lord <mattalord@gmail.com> * more vdiffEnv work Signed-off-by: Matt Lord <mattalord@gmail.com> * Use a shard testenv as it creates a vttestserver and mysqld instanc3 Signed-off-by: Matt Lord <mattalord@gmail.com> * Add vtctl client results/report tests Signed-off-by: Matt Lord <mattalord@gmail.com> * Add TestVDiff to test full set of queries Signed-off-by: Matt Lord <mattalord@gmail.com> * Finish up vtctl report building unit tests Signed-off-by: Matt Lord <mattalord@gmail.com> * Deflake the unit tests in the CI Signed-off-by: Matt Lord <mattalord@gmail.com> * Add TestVDiff2Sharded Signed-off-by: Matt Lord <mattalord@gmail.com> * Minor changes after self review Signed-off-by: Matt Lord <mattalord@gmail.com> * Reduce resource usage for race condition unit tests We were creating a somewhat crazy number of resources. Signed-off-by: Matt Lord <mattalord@gmail.com> * Fix data race in TestVDiff Signed-off-by: Matt Lord <mattalord@gmail.com> * Correct Wrangler semaphore usage Signed-off-by: Matt Lord <mattalord@gmail.com> * Minor change after another self review Signed-off-by: Matt Lord <mattalord@gmail.com> Signed-off-by: Matt Lord <mattalord@gmail.com> * mysqlctl is a command-line client so remove server flags (#12022) * mysqlctl is a client command-line tool So remove the [gRPC] server related flags. [mysqlctld] is the gRPC server that can be used instead of mysqlctl. Signed-off-by: Matt Lord <mattalord@gmail.com> * Add release notes coverage Signed-off-by: Matt Lord <mattalord@gmail.com> * Add section header for release notes item Signed-off-by: Matt Lord <mattalord@gmail.com> * Remove errant flag type in list Signed-off-by: Matt Lord <mattalord@gmail.com> Signed-off-by: Matt Lord <mattalord@gmail.com> * OnlineDDL: scheduleNextMigration() to only read reviewed migrations (#12014) * OnlineDDL: scheduleNextMigration() to only read reviewed migrations Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * reviewImmediateOperations(): do not attempt to classify a REVERT of an ALTER Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * sqlparser: QueryMatchesTemplates uses canonical string (#11990) Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * OnlineDDL: support --unsafe-allow-foreign-keys strategy flag (#11976) * OnlineDDL: support --unsafe-allow-foreign-keys strategy flag Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * double dashes Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> Signed-off-by: Shlomi Noach <2607934+shlomi-noach@users.noreply.github.com> * BugFix: Errant GTID detection for a single replica (#12024) * test: add failing tests Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: fix errant gtid detection Signed-off-by: Manan Gupta <manan@planetscale.com> * comment: add few comments to better explain the test and the function Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: fix ers to not fail when there is only one replica which fails to set replication source Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: address review comments Signed-off-by: Manan Gupta <manan@planetscale.com> Signed-off-by: Manan Gupta <manan@planetscale.com> * Fix rbac config in the vtop example (#12034) * feat: fix rbac config in the operator example Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: fix clusters value too Signed-off-by: Manan Gupta <manan@planetscale.com> Signed-off-by: Manan Gupta <manan@planetscale.com> * VReplication: Test Migrations From MariaDB to MySQL (#12036) * Add MariaDB Migration e2e Test Signed-off-by: Matt Lord <mattalord@gmail.com> * Consolidate MariaDB Version Configs Signed-off-by: Matt Lord <mattalord@gmail.com> * Minor changes after self review Signed-off-by: Matt Lord <mattalord@gmail.com> * Additional MariaDB cleanup from unit test generation Signed-off-by: Dirkjan Bussink <d.bussink@gmail.com> * Small additional cleanup Signed-off-by: Matt Lord <mattalord@gmail.com> * Use latest MariaDB LTS release as default guess from ENV https://mariadb.com/kb/en/changes-improvements-in-mariadb-106/ Signed-off-by: Matt Lord <mattalord@gmail.com> Signed-off-by: Matt Lord <mattalord@gmail.com> Signed-off-by: Dirkjan Bussink <d.bussink@gmail.com> Co-authored-by: Dirkjan Bussink <d.bussink@gmail.com> * [vtctldclient|docs] apply doc feedback based on website PR feedback (#12030) * apply doc feedback based on website PR feedback Signed-off-by: Andrew Mason <andrew@planetscale.com> * always link to latest Signed-off-by: Andrew Mason <andrew@planetscale.com> * update flags test data Signed-off-by: Andrew Mason <andrew@planetscale.com> Signed-off-by: Andrew Mason <andrew@planetscale.com> * VTOrc Code Cleanup - generate_base, replace cluster_name with keyspace and shard. (#12012) * feat: refactor generate commands of VTOrc to be in a single file Signed-off-by: Manan Gupta <manan@planetscale.com> * refactor: cleanup create table formatting Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: cleanup the usage of IsSQLite and IsMySQL Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: remove unused minimal instance Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: remove unused table cluster_domain_name Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: fix vtorc database to store keyspace and shard instead of cluster Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: remove unused attributes Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: remove unused cluster domain Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: change GetClusterName to GetKeyspaceAndShardName Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: fix insertion into database_instance Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: fix SnapshotTopologies Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: remove inject unseen primary and inject seed Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: remove ClusterName from Instance Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: fix Audit operations Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: add Keyspace and Shard to cluster information to replace ClusterName Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: fix attempt failure detection registeration Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: fix blocked topology recoveries Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: fix topology recovery Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: reading recovery instances Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: fix get replication and analysis Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: fix bug in query Signed-off-by: Manan Gupta <manan@planetscale.com> * test: add tests to check that filtering by keyspace works for APIs Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: remove remaining usages of ClusterName Signed-off-by: Manan Gupta <manan@planetscale.com> * refactor: fix comment explaining sleep in the test Signed-off-by: Manan Gupta <manan@planetscale.com> * feat: add code to prevent filtering just by shard and add tests for it Signed-off-by: Manan Gupta <manan@planetscale.com> Signed-off-by: Manan Gupta <manan@planetscale.com> * Add missing backslash to run.sh script (#12033) * Add missing backslash to run.sh script Backslash was missing, which was causing, that --schema_dir was not applied and therefore tables in DB were not created. This will fix it Signed-off-by: kbslvsk <76602353+kbslvsk@users.noreply.github.com> * Add missing backslash to run.sh script Backslash was missing, which was causing, that --schema_dir was not applied and therefore tables in DB were not created. This will fix it Signed-off-by: kbslvsk <76602353+kbslvsk@users.noreply.github.com> Signed-off-by: kbslvsk <76602353+kbslvsk@users.noreply.github.com> * VDiff2: Properly App…
Description
Fixes #11913
This PR ensures to clean up non-utf8 characters from the error message reported in
_vt.schema_migrations
. If writing the message still fails for whatever reason (the text is too long?), we opt for an alternative, generic error message.Related Issue(s)
#11913
#6926
Checklist
Deployment Notes