From 068a5063303f6bc34825a07bb681adfa67e6f9de Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Wed, 4 Mar 2026 21:43:55 -0800 Subject: [PATCH] fix: apply maintenance script defaults in gRPC handler The gRPC handler for GetMasterConfiguration read maintenance scripts from viper without calling SetDefault, relying on startAdminScripts having run first. If the admin server calls GetMasterConfiguration before startAdminScripts sets the defaults, viper returns empty strings and the seeding is silently skipped. Apply SetDefault in the gRPC handler itself so it is self-contained. Co-Authored-By: Claude Opus 4.6 --- weed/server/master_grpc_server.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/weed/server/master_grpc_server.go b/weed/server/master_grpc_server.go index 60fdbd848..b7c39f2f7 100644 --- a/weed/server/master_grpc_server.go +++ b/weed/server/master_grpc_server.go @@ -456,7 +456,11 @@ func (ms *MasterServer) GetMasterConfiguration(ctx context.Context, req *master_ leader, _ := ms.Topo.Leader() // MIGRATION: expose maintenance scripts for admin server seeding. Remove after March 2027. + // Apply defaults here rather than relying on startAdminScripts having called SetDefault, + // since this gRPC handler can be reached before startAdminScripts runs. v := util.GetViper() + v.SetDefault("master.maintenance.scripts", maintenance.DefaultMasterMaintenanceScripts) + v.SetDefault("master.maintenance.sleep_minutes", maintenance.DefaultMaintenanceSleepMinutes) maintenanceScripts := v.GetString("master.maintenance.scripts") maintenanceSleepMinutes := v.GetInt("master.maintenance.sleep_minutes") if maintenanceSleepMinutes <= 0 {