Skip to content

VReplication: Improve permission check logic on external tablets on SwitchTraffic#18348

Merged
rohit-nayak-ps merged 6 commits intovitessio:mainfrom
planetscale:rohit/sidecar-creds
Jul 5, 2025
Merged

VReplication: Improve permission check logic on external tablets on SwitchTraffic#18348
rohit-nayak-ps merged 6 commits intovitessio:mainfrom
planetscale:rohit/sidecar-creds

Conversation

@rohit-nayak-ps
Copy link
Member

@rohit-nayak-ps rohit-nayak-ps commented Jun 10, 2025

Description

  • Add wildcard check on db name during permission check
  • Fix error logging by sending the "missing permission" error from the external tablet, so that we can use the correct sidecar db name
  • Add checks for partial db name grants in e2e tests

We also use this PR to increase the --vreplication-copy-phase-max-innodb-history-list-length to 10MB since we have found that the current default of 1MB is too conservative and is throttling workflows unnecessarily, especially for atomic copy workflows or for clusters with a high qps.

Related Issue(s)

#18349

Checklist

  • "Backport to:" labels have been added if this change should be back-ported to release branches
  • If this change is to be back-ported to previous releases, a justification is included in the PR description
  • Tests were added or are not required
  • Did the new or modified tests pass consistently locally and on CI?
  • Documentation was added or is not required

Deployment Notes

…t cases. Return error from checked tablet to ensure correct sidecardb name is used

Signed-off-by: Rohit Nayak <rohit@planetscale.com>
Signed-off-by: Rohit Nayak <rohit@planetscale.com>
@rohit-nayak-ps rohit-nayak-ps added Type: Enhancement Logical improvement (somewhere between a bug and feature) Component: VReplication labels Jun 10, 2025
@vitess-bot
Copy link
Contributor

vitess-bot bot commented Jun 10, 2025

Review Checklist

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

General

  • Ensure that the Pull Request has a descriptive title.
  • Ensure there is a link to an issue (except for internal cleanup and flaky test fixes), new features should have an RFC that documents use cases and test cases.

Tests

  • Bug fixes should have at least one unit or end-to-end test, enhancement and new features should have a sufficient number of tests.

Documentation

  • Apply the release notes (needs details) label if users need to know about this change.
  • New features should be documented.
  • There should be some code comments as to why things are implemented the way they are.
  • There should be a comment at the top of each new or modified test to explain what the test does.

New flags

  • Is this flag really necessary?
  • Flag names must be clear and intuitive, use dashes (-), and have a clear help text.

If a workflow is added or modified:

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

Backward compatibility

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

@vitess-bot vitess-bot bot added NeedsBackportReason If backport labels have been applied to a PR, a justification is required NeedsDescriptionUpdate The description is not clear or comprehensive enough, and needs work NeedsIssue A linked issue is missing for this Pull Request NeedsWebsiteDocsUpdate What it says labels Jun 10, 2025
@github-actions github-actions bot added this to the v23.0.0 milestone Jun 10, 2025
@rohit-nayak-ps rohit-nayak-ps removed NeedsDescriptionUpdate The description is not clear or comprehensive enough, and needs work NeedsWebsiteDocsUpdate What it says NeedsIssue A linked issue is missing for this Pull Request NeedsBackportReason If backport labels have been applied to a PR, a justification is required labels Jun 10, 2025
Signed-off-by: Rohit Nayak <rohit@planetscale.com>
Signed-off-by: Rohit Nayak <rohit@planetscale.com>
Signed-off-by: Rohit Nayak <rohit@planetscale.com>
Signed-off-by: Rohit Nayak <rohit@planetscale.com>
@codecov
Copy link

codecov bot commented Jun 10, 2025

Codecov Report

Attention: Patch coverage is 23.07692% with 10 lines in your changes missing coverage. Please review.

Project coverage is 67.49%. Comparing base (2520f7f) to head (3329073).
Report is 2 commits behind head on main.

Files with missing lines Patch % Lines
go/vt/vttablet/tabletmanager/rpc_vreplication.go 0.00% 10 Missing ⚠️
Additional details and impacted files
@@           Coverage Diff           @@
##             main   #18348   +/-   ##
=======================================
  Coverage   67.49%   67.49%           
=======================================
  Files        1603     1603           
  Lines      262428   262448   +20     
=======================================
+ Hits       177114   177139   +25     
+ Misses      85314    85309    -5     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link
Member

@beingnoble03 beingnoble03 left a comment

Choose a reason for hiding this comment

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

looks good!

)
)
limit 1

Copy link
Member

Choose a reason for hiding this comment

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

nit: i think this empty line was left unintentionally?

Copy link
Member Author

Choose a reason for hiding this comment

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

👍🏽 Let's fix it later, don't want to monitor yet another CI cycle to fix this nit!

@rohit-nayak-ps rohit-nayak-ps merged commit c1cda2b into vitessio:main Jul 5, 2025
106 of 128 checks passed
@rohit-nayak-ps rohit-nayak-ps deleted the rohit/sidecar-creds branch July 5, 2025 09:47
morgo added a commit to morgo/vitess that referenced this pull request Jul 7, 2025
…tests

* origin/master: (32 commits)
  test: Fix race condition in TestStreamRowsHeartbeat (vitessio#18414)
  VReplication: Improve permission check logic on external tablets on SwitchTraffic (vitessio#18348)
  Perform post copy actions in atomic copy (vitessio#18411)
  Update `operator.yaml` (vitessio#18364)
  Feature(onlineddl): Add shard-specific completion to online ddl (vitessio#18331)
  Set parsed comments in operator for subqueries (vitessio#18369)
  `vtorc`: move shard primary timestamp to time type (vitessio#18401)
  `vtorc`: rename `isClusterWideRecovery` -> `isShardWideRecovery` (vitessio#18351)
  `vtorc`: remove dupe keyspace/shard in replication analysis (vitessio#18395)
  Topo: Add NamedLock test for zk2 and consul and get them passing (vitessio#18407)
  Handle MySQL 9.x as New Flavor in getFlavor() (vitessio#18399)
  Add support for sending grpc server backend metrics via ORCA (vitessio#18282)
  asthelpergen: add design documentation (vitessio#18403)
  `vtorc`: add keyspace/shard labels to recoveries stats (vitessio#18304)
  `vtorc`: cleanup `database_instance` location fields (vitessio#18339)
  avoid derived tables for UNION when possible (vitessio#18393)
  [Bugfix] Broken Heartbeat system in Row Streamer (vitessio#18390)
  Update MAINTAINERS.md (vitessio#18394)
  move vmg to emeritus (vitessio#18388)
  Make sure to check if the server is closed in etcd2topo (vitessio#18352)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Component: VReplication Type: Enhancement Logical improvement (somewhere between a bug and feature)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

7 participants