From 280e057b484eb41bb9263cc9ced684dc83d1b567 Mon Sep 17 00:00:00 2001 From: --global Date: Thu, 30 Oct 2025 10:42:33 -0700 Subject: [PATCH 1/2] add hostname to backup manifest Signed-off-by: --global --- go/vt/mysqlctl/backupengine.go | 2 ++ go/vt/mysqlctl/builtinbackupengine.go | 7 +++++++ go/vt/mysqlctl/mysqlshellbackupengine.go | 7 +++++++ go/vt/mysqlctl/mysqlshellbackupengine_test.go | 4 ++++ go/vt/mysqlctl/xtrabackupengine.go | 7 +++++++ 5 files changed, 27 insertions(+) diff --git a/go/vt/mysqlctl/backupengine.go b/go/vt/mysqlctl/backupengine.go index d8ce0484c2f..216f32c8718 100644 --- a/go/vt/mysqlctl/backupengine.go +++ b/go/vt/mysqlctl/backupengine.go @@ -327,6 +327,8 @@ type BackupManifest struct { TabletAlias string + Hostname string + Keyspace string Shard string diff --git a/go/vt/mysqlctl/builtinbackupengine.go b/go/vt/mysqlctl/builtinbackupengine.go index 83eea0d8b4a..26ac07aff6d 100644 --- a/go/vt/mysqlctl/builtinbackupengine.go +++ b/go/vt/mysqlctl/builtinbackupengine.go @@ -1001,6 +1001,12 @@ func (be *BuiltinBackupEngine) backupManifest( } }() + // Get the hostname + hostname, err := os.Hostname() + if err != nil { + hostname = "" + } + // JSON-encode and write the MANIFEST bm := &builtinBackupManifest{ // Common base fields @@ -1014,6 +1020,7 @@ func (be *BuiltinBackupEngine) backupManifest( Incremental: !fromPosition.IsZero(), ServerUUID: serverUUID, TabletAlias: params.TabletAlias, + Hostname: hostname, Keyspace: params.Keyspace, Shard: params.Shard, BackupTime: params.BackupTime.UTC().Format(time.RFC3339), diff --git a/go/vt/mysqlctl/mysqlshellbackupengine.go b/go/vt/mysqlctl/mysqlshellbackupengine.go index c9fbac9fb0d..2930688ad11 100644 --- a/go/vt/mysqlctl/mysqlshellbackupengine.go +++ b/go/vt/mysqlctl/mysqlshellbackupengine.go @@ -204,6 +204,12 @@ func (be *MySQLShellBackupEngine) ExecuteBackup(ctx context.Context, params Back } defer closeFile(mwc, backupManifestFileName, params.Logger, &finalErr) + // Get the hostname + hostname, err := os.Hostname() + if err != nil { + hostname = "" + } + // JSON-encode and write the MANIFEST bm := &MySQLShellBackupManifest{ // Common base fields @@ -218,6 +224,7 @@ func (be *MySQLShellBackupEngine) ExecuteBackup(ctx context.Context, params Back FinishedTime: FormatRFC3339(time.Now().UTC()), ServerUUID: serverUUID, TabletAlias: params.TabletAlias, + Hostname: hostname, Keyspace: params.Keyspace, Shard: params.Shard, MySQLVersion: mysqlVersion, diff --git a/go/vt/mysqlctl/mysqlshellbackupengine_test.go b/go/vt/mysqlctl/mysqlshellbackupengine_test.go index 59202d78c2e..a9c6f428b4c 100644 --- a/go/vt/mysqlctl/mysqlshellbackupengine_test.go +++ b/go/vt/mysqlctl/mysqlshellbackupengine_test.go @@ -406,6 +406,10 @@ func TestMySQLShellBackupEngine_ExecuteBackup_ReleaseLock(t *testing.T) { require.Equal(t, mysqlShellBackupEngineName, manifest.BackupMethod) + if hostname, err := os.Hostname(); err == nil { + require.Equal(t, hostname, manifest.Hostname) + } + // did we notice the lock was release and did we release it ours as well? require.Contains(t, logger.String(), "global read lock released after", "failed to release the global lock after mysqlsh") diff --git a/go/vt/mysqlctl/xtrabackupengine.go b/go/vt/mysqlctl/xtrabackupengine.go index 23e8440d575..de160b0ad0e 100644 --- a/go/vt/mysqlctl/xtrabackupengine.go +++ b/go/vt/mysqlctl/xtrabackupengine.go @@ -245,6 +245,12 @@ func (be *XtrabackupEngine) executeFullBackup(ctx context.Context, params Backup } defer closeFile(mwc, backupManifestFileName, params.Logger, &finalErr) + // Get the hostname + hostname, err := os.Hostname() + if err != nil { + hostname = "" + } + // JSON-encode and write the MANIFEST bm := &xtraBackupManifest{ // Common base fields @@ -255,6 +261,7 @@ func (be *XtrabackupEngine) executeFullBackup(ctx context.Context, params Backup PurgedPosition: replicationPosition, ServerUUID: serverUUID, TabletAlias: params.TabletAlias, + Hostname: hostname, Keyspace: params.Keyspace, Shard: params.Shard, BackupTime: FormatRFC3339(params.BackupTime.UTC()), From cd410cf5312332596d876dd33ffb502a63c9affe Mon Sep 17 00:00:00 2001 From: --global Date: Mon, 3 Nov 2025 09:01:09 -0800 Subject: [PATCH 2/2] use fqdn instead Signed-off-by: --global --- go/vt/mysqlctl/builtinbackupengine.go | 3 ++- go/vt/mysqlctl/mysqlshellbackupengine.go | 3 ++- go/vt/mysqlctl/mysqlshellbackupengine_test.go | 3 ++- go/vt/mysqlctl/xtrabackupengine.go | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/go/vt/mysqlctl/builtinbackupengine.go b/go/vt/mysqlctl/builtinbackupengine.go index 26ac07aff6d..6be5721a1b4 100644 --- a/go/vt/mysqlctl/builtinbackupengine.go +++ b/go/vt/mysqlctl/builtinbackupengine.go @@ -39,6 +39,7 @@ import ( "vitess.io/vitess/go/ioutil" "vitess.io/vitess/go/mysql" "vitess.io/vitess/go/mysql/replication" + "vitess.io/vitess/go/netutil" "vitess.io/vitess/go/os2" "vitess.io/vitess/go/protoutil" "vitess.io/vitess/go/vt/log" @@ -1002,7 +1003,7 @@ func (be *BuiltinBackupEngine) backupManifest( }() // Get the hostname - hostname, err := os.Hostname() + hostname, err := netutil.FullyQualifiedHostname() if err != nil { hostname = "" } diff --git a/go/vt/mysqlctl/mysqlshellbackupengine.go b/go/vt/mysqlctl/mysqlshellbackupengine.go index 2930688ad11..3fdda2f8e0d 100644 --- a/go/vt/mysqlctl/mysqlshellbackupengine.go +++ b/go/vt/mysqlctl/mysqlshellbackupengine.go @@ -35,6 +35,7 @@ import ( "vitess.io/vitess/go/mysql" "vitess.io/vitess/go/mysql/capabilities" + "vitess.io/vitess/go/netutil" "vitess.io/vitess/go/vt/log" "vitess.io/vitess/go/vt/mysqlctl/backupstorage" tabletmanagerdatapb "vitess.io/vitess/go/vt/proto/tabletmanagerdata" @@ -205,7 +206,7 @@ func (be *MySQLShellBackupEngine) ExecuteBackup(ctx context.Context, params Back defer closeFile(mwc, backupManifestFileName, params.Logger, &finalErr) // Get the hostname - hostname, err := os.Hostname() + hostname, err := netutil.FullyQualifiedHostname() if err != nil { hostname = "" } diff --git a/go/vt/mysqlctl/mysqlshellbackupengine_test.go b/go/vt/mysqlctl/mysqlshellbackupengine_test.go index a9c6f428b4c..7436b30e544 100644 --- a/go/vt/mysqlctl/mysqlshellbackupengine_test.go +++ b/go/vt/mysqlctl/mysqlshellbackupengine_test.go @@ -29,6 +29,7 @@ import ( "vitess.io/vitess/go/ioutil" "vitess.io/vitess/go/mysql/fakesqldb" + "vitess.io/vitess/go/netutil" "vitess.io/vitess/go/sqltypes" "vitess.io/vitess/go/vt/logutil" tabletmanagerdatapb "vitess.io/vitess/go/vt/proto/tabletmanagerdata" @@ -406,7 +407,7 @@ func TestMySQLShellBackupEngine_ExecuteBackup_ReleaseLock(t *testing.T) { require.Equal(t, mysqlShellBackupEngineName, manifest.BackupMethod) - if hostname, err := os.Hostname(); err == nil { + if hostname, err := netutil.FullyQualifiedHostname(); err == nil { require.Equal(t, hostname, manifest.Hostname) } diff --git a/go/vt/mysqlctl/xtrabackupengine.go b/go/vt/mysqlctl/xtrabackupengine.go index de160b0ad0e..22d28d48858 100644 --- a/go/vt/mysqlctl/xtrabackupengine.go +++ b/go/vt/mysqlctl/xtrabackupengine.go @@ -34,6 +34,7 @@ import ( "vitess.io/vitess/go/ioutil" "vitess.io/vitess/go/mysql/replication" + "vitess.io/vitess/go/netutil" "vitess.io/vitess/go/vt/logutil" "vitess.io/vitess/go/vt/mysqlctl/backupstorage" tabletmanagerdatapb "vitess.io/vitess/go/vt/proto/tabletmanagerdata" @@ -246,7 +247,7 @@ func (be *XtrabackupEngine) executeFullBackup(ctx context.Context, params Backup defer closeFile(mwc, backupManifestFileName, params.Logger, &finalErr) // Get the hostname - hostname, err := os.Hostname() + hostname, err := netutil.FullyQualifiedHostname() if err != nil { hostname = "" }