fix: prevent MiniClusterCtx race conditions in command shutdown

Capture global MiniClusterCtx into local variables before goroutine/select
evaluation to prevent nil dereference/data race when context is reset to nil
after nil check. Applied to filer, master, volume, and s3 commands.
This commit is contained in:
Chris Lu
2026-01-28 19:42:16 -08:00
parent a4217dff5f
commit c106532b79
4 changed files with 12 additions and 7 deletions

View File

@@ -319,10 +319,11 @@ func (v VolumeServerOptions) startVolumeServer(volumeFolders, maxVolumeCounts, v
stopChan <- true
})
if MiniClusterCtx != nil {
ctx := MiniClusterCtx
if ctx != nil {
select {
case <-stopChan:
case <-MiniClusterCtx.Done():
case <-ctx.Done():
shutdown(publicHttpDown, clusterHttpServer, grpcS, volumeServer)
}
} else {