Closed pbibra closed 11 months ago
Context: https://vitess.slack.com/archives/C0PQY0PTK/p1683010265492109
When specifying a timestamp for a snapshot keyspace, we expect all tablets coming up in that keyspace to use the backup at or before the snapshot time. https://vitess.io/docs/17.0/reference/features/recovery/
There seems to be a regression where the restore code is always using the latest backup regardless of what the snapshot time is.
make build
cd examples/local
./101_initial_cluster
GetTablets
vtctldclient --server localhost:15999 Backup zone1-0000000101
vtctldclient --server localhost:15999 CreateKeyspace --type=SNAPSHOT --base-keyspace=commerce --snapshot-timestamp=2023-07-19T18:16:00Z pitrexample Successfully created keyspace pitrexample. Result: { "name": "pitrexample", "keyspace": { "served_froms": [], "keyspace_type": 1, "base_keyspace": "commerce", "snapshot_time": { "seconds": "1689790560", "nanoseconds": 0 }, "durability_policy": "none", "throttler_config": null, "sidecar_db_name": "_vt" } }
ls vtdataroot/backups/commerce/0 2023-07-19.181518.zone1-0000000100 2023-07-19.181623.zone1-0000000100
vttablet-up.sh
--init_db_name_override vt_commerce
CELL=zone1 TABLET_UID=300 ../common/scripts/mysqlctl-up.sh
CELL-zone1 KEYSPACE=pitrexample TABLET_UID=300 ../common/scripts/vttablet-up.sh
localhost:15300/debug/vars
RestoredBackupTime
latest on main - also in release 14
macOS
No response
Related: https://github.com/vitessio/vitess/pull/8824 which has the change that broke this.
Overview of the Issue
Context: https://vitess.slack.com/archives/C0PQY0PTK/p1683010265492109
When specifying a timestamp for a snapshot keyspace, we expect all tablets coming up in that keyspace to use the backup at or before the snapshot time. https://vitess.io/docs/17.0/reference/features/recovery/
There seems to be a regression where the restore code is always using the latest backup regardless of what the snapshot time is.
Reproduction Steps
make build
&cd examples/local
./101_initial_cluster
GetTablets
pick a replicavtctldclient --server localhost:15999 Backup zone1-0000000101
vtctldclient --server localhost:15999 Backup zone1-0000000101
vttablet-up.sh
to have--init_db_name_override vt_commerce
CELL=zone1 TABLET_UID=300 ../common/scripts/mysqlctl-up.sh
CELL-zone1 KEYSPACE=pitrexample TABLET_UID=300 ../common/scripts/vttablet-up.sh
localhost:15300/debug/vars
and checkRestoredBackupTime
Binary Version
Operating System and Environment details
Log Fragments
No response