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
- Pull the latest from repo.
make build & cd examples/local
./101_initial_cluster
- From
GetTablets pick a replica
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"
}
}
- Create another backup for a later timestamp
vtctldclient --server localhost:15999 Backup zone1-0000000101
ls vtdataroot/backups/commerce/0
2023-07-19.181518.zone1-0000000100 2023-07-19.181623.zone1-0000000100
- update
vttablet-up.sh to have --init_db_name_override vt_commerce
- Run
CELL=zone1 TABLET_UID=300 ../common/scripts/mysqlctl-up.sh
- Run
CELL-zone1 KEYSPACE=pitrexample TABLET_UID=300 ../common/scripts/vttablet-up.sh
- Navigate to
localhost:15300/debug/vars and check RestoredBackupTime

Binary Version
latest on main - also in release 14
Operating System and Environment details
Log Fragments
No response
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_clusterGetTabletspick a replicavtctldclient --server localhost:15999 Backup zone1-0000000101vtctldclient --server localhost:15999 Backup zone1-0000000101vttablet-up.shto have--init_db_name_override vt_commerceCELL=zone1 TABLET_UID=300 ../common/scripts/mysqlctl-up.shCELL-zone1 KEYSPACE=pitrexample TABLET_UID=300 ../common/scripts/vttablet-up.shlocalhost:15300/debug/varsand checkRestoredBackupTimeBinary Version
latest on main - also in release 14Operating System and Environment details
Log Fragments
No response