From 8873f9775c5d6d6b467beaa0eefd673877d03d75 Mon Sep 17 00:00:00 2001 From: Chris Lu Date: Mon, 31 Aug 2026 23:14:37 -0700 Subject: [PATCH] shell: reset noLock in the admin script dispatcher too (#11059) Three dispatchers reuse one CommandEnv: the interactive shell, the master's maintenance script runner, and the plugin worker's admin script handler. The first two were fixed; this is the third. It changes nothing today -- ForceNoLock already exempts this path -- so it is here to keep the rule the same everywhere rather than resting on that exemption staying in place. --- weed/plugin/worker/admin_script_handler.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/weed/plugin/worker/admin_script_handler.go b/weed/plugin/worker/admin_script_handler.go index 5643956d0..d6ff69cca 100644 --- a/weed/plugin/worker/admin_script_handler.go +++ b/weed/plugin/worker/admin_script_handler.go @@ -290,6 +290,11 @@ func (h *AdminScriptHandler) Execute(ctx context.Context, request *plugin_pb.Exe continue } found = true + // The env is reused for every command in the script, and noLock + // belongs to the invocation that set it. ForceNoLock already exempts + // this path, so this changes nothing today -- it keeps the rule the + // same in all three dispatchers rather than resting on that. + commandEnv.SetNoLock(false) if err := command.Do(cmd.Args, commandEnv, output); err != nil { msg := fmt.Sprintf("%s: %v", cmd.Name, err) errorMessages = append(errorMessages, msg)