fix: missing cleanup of tmp folders in NAS gateway setup (#13124)

console service should be shutdown last once all shutdown
sequences are complete, this is to ensure that we do not
prematurely kill the server before it cleans up the

`.minio.sys/tmp/uuid` folder.

NOTE: this only applies to NAS gateway setup.
This commit is contained in:
Harshavardhana 2021-08-31 18:52:48 -07:00 committed by GitHub
parent 72a288f73f
commit f89d0f68d0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 17 additions and 14 deletions

View File

@ -345,18 +345,14 @@ func StartGateway(ctx *cli.Context, gw Gateway) {
}
if globalBrowserEnabled {
consoleSrv, err := initConsoleServer()
globalConsoleSrv, err = initConsoleServer()
if err != nil {
logger.FatalIf(err, "Unable to initialize console service")
}
go func() {
<-globalOSSignalCh
consoleSrv.Shutdown()
logger.FatalIf(globalConsoleSrv.Serve(), "Unable to initialize console server")
}()
consoleSrv.Serve()
} else {
<-globalOSSignalCh
}
<-globalOSSignalCh
}

View File

@ -25,6 +25,7 @@ import (
"sync"
"time"
"github.com/minio/console/restapi"
"github.com/minio/minio-go/v7/pkg/set"
"github.com/minio/minio/internal/bucket/bandwidth"
"github.com/minio/minio/internal/handlers"
@ -315,6 +316,8 @@ var (
globalTierJournal *tierJournal
globalConsoleSrv *restapi.Server
globalDebugRemoteTiersImmediately []string
// Add new variable global values here.
)

View File

@ -1453,6 +1453,9 @@ func (sys *NotificationSys) GetBandwidthReports(ctx context.Context, buckets ...
// GetClusterMetrics - gets the cluster metrics from all nodes excluding self.
func (sys *NotificationSys) GetClusterMetrics(ctx context.Context) chan Metric {
if sys == nil {
return nil
}
g := errgroup.WithNErrs(len(sys.peerClients))
peerChannels := make([]<-chan Metric, len(sys.peerClients))
for index := range sys.peerClients {

View File

@ -582,20 +582,17 @@ func serverMain(ctx *cli.Context) {
}
if globalBrowserEnabled {
consoleSrv, err := initConsoleServer()
globalConsoleSrv, err = initConsoleServer()
if err != nil {
logger.FatalIf(err, "Unable to initialize console service")
}
go func() {
logger.FatalIf(consoleSrv.Serve(), "Unable to initialize console server")
logger.FatalIf(globalConsoleSrv.Serve(), "Unable to initialize console server")
}()
<-globalOSSignalCh
consoleSrv.Shutdown()
} else {
<-globalOSSignalCh
}
<-globalOSSignalCh
}
// Initialize object layer with the supplied disks, objectLayer is nil upon any error.

View File

@ -66,6 +66,10 @@ func handleSignals() {
logger.LogIf(context.Background(), oerr)
}
if globalConsoleSrv != nil {
logger.LogIf(context.Background(), globalConsoleSrv.Shutdown())
}
return (err == nil && oerr == nil)
}